请注意下表。我想将新创建的BEST_SELLER
列的默认值设置为"N"
。
我该怎么做呢?如何设置列的默认值?
Create Table Mystery
(Book_Code Char(4) Primary Key,
Title Varchar2(40),
Publisher_Code Char(2),
Price Number(4,2))
请注意下表。我想将新创建的BEST_SELLER
列的默认值设置为"N"
。
我该怎么做呢?如何设置列的默认值?
Create Table Mystery
(Book_Code Char(4) Primary Key,
Title Varchar2(40),
Publisher_Code Char(2),
Price Number(4,2))
如果列不存在:
alter table Mystery add column BEST_SELLER enum('N','Y') default 'N';
,如果列上存在:
alter table Mystery alter column BEST_SELLER set default 'N';
如果添加的列的表是后创建你可以用alter语句做类似的事情。
我加入,因为你的回应我的第一个回答的第二个答案。这个答案适用日期:
随函附上如下:
alter table
mystery
modify
BEST_SELLER char(1) DEFAULT 'N'
请修改类型char(1)
到任何列实际上是。运行此查询更正表后,您将需要发出第二个查询,以更新现有的行,如:
UPDATE
mystery
SET
BEST_SELLER = 'N'
WHERE
BEST_SELLER = ''
OR BEST_SELLER IS NULL
希望这有助于。
那么会填充现有的行吗? – Murph 2009-11-13 18:23:25
什么都没有,你需要发出一个通用的更新查询,例如:UPDATE mystery SET BEST_SELLER ='N'WHERE BEST_SELLER =''或BEST_SELLER是NULL(这是基于我对MySQL语法的了解,尽管我认为它是通用性足以承载oracle),但默认值应该在未来证明你在这种情况下。 – Dereleased 2009-11-13 18:30:03
感谢您的工作! – Michael 2009-11-13 18:34:39
国际海事组织这个问题的标题应该改变,以反映野兽的性质,为后代。 – Dereleased 2009-11-13 18:06:19
你在使用什么SQL Server? – Murph 2009-11-13 18:20:26
SQL PLUS。我已经创建了COLUMN BEST_SELLER ... – Michael 2009-11-13 18:22:54