2

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

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

3 回答 3

8

基本MySQL 更改表命令

如果该列不存在:

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

如果列存在:

alter table Mystery alter column BEST_SELLER set default 'N';
于 2009-11-13T18:01:50.857 回答
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

希望这可以帮助。

于 2009-11-13T18:18:32.273 回答
0

如果在创建表之后添加列,则可以使用 alter 语句执行类似的操作。

改变

于 2009-11-13T18:01:57.747 回答