2009-11-13 121 views
2

请注意下表。我想将新创建的BEST_SELLER列的默认值设置为"N"
我该怎么做呢?如何设置列的默认值?

Create Table Mystery 
(Book_Code Char(4) Primary Key, 
Title Varchar2(40), 
Publisher_Code Char(2), 
Price Number(4,2)) 
+1

国际海事组织这个问题的标题应该改变,以反映野兽的性质,为后代。 – Dereleased 2009-11-13 18:06:19

+0

你在使用什么SQL Server? – Murph 2009-11-13 18:20:26

+0

SQL PLUS。我已经创建了COLUMN BEST_SELLER ... – Michael 2009-11-13 18:22:54

回答

7

基本MySQL Alter Table命令

如果列不存在:

alter table Mystery add column BEST_SELLER enum('N','Y') default 'N'; 

,如果列上存在:

alter table Mystery alter column BEST_SELLER set default 'N'; 
0

如果添加的列的表是后创建你可以用alter语句做类似的事情。

alter

5

我加入,因为你的回应我的第一个回答的第二个答案。这个答案适用日期:

  1. 您正在使用Oracle,和
  2. 您已经创建的表,所以你需要使用“ALTER TABLE”语法。

随函附上如下:

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 

希望这有助于。

+1

那么会填充现有的行吗? – Murph 2009-11-13 18:23:25

+0

什么都没有,你需要发出一个通用的更新查询,例如:UPDATE mystery SET BEST_SELLER ='N'WHERE BEST_SELLER =''或BEST_SELLER是NULL(这是基于我对MySQL语法的了解,尽管我认为它是通用性足以承载oracle),但默认值应该在未来证明你在这种情况下。 – Dereleased 2009-11-13 18:30:03

+0

感谢您的工作! – Michael 2009-11-13 18:34:39