13

我在这里读到我应该能够设置这样的列的默认值:

ALTER [ COLUMN ] column SET DEFAULT expression

但是这个:

ALTER address.IsActive SET DEFAULT NULL

给我这个错误:

错误:“地址”处或附近的语法错误 LINE 1:ALTER address.IsActive SET DEFAULT NULL

我做错了什么?另外,如何指定多个列以使其默认值为NULL

4

4 回答 4

20

正确的语法是:

ALTER TABLE table_name ALTER COLUMN column_name SET DEFAULT NULL;

对于几列,您重复ALTER COLUMN手册中记录的部分:

ALTER TABLE table_name 
    ALTER COLUMN foo SET DEFAULT NULL,
    ALTER COLUMN bar SET DEFAULT 0;
于 2013-02-12T17:45:48.043 回答
8

您没有运行完整的语句。你错过了这个ALTER TABLE部分:

ALTER TABLE [ ONLY ] name [ * ]
    action [, ... ]
ALTER TABLE [ ONLY ] name [ * ]
    RENAME [ COLUMN ] column TO new_column
ALTER TABLE name
    RENAME TO new_name

其中行动是以下之一:
[...]

于 2013-02-12T17:45:33.363 回答
4

尝试如下...它会工作....

ALTER TABLE address ALTER COLUMN IsActive SET DEFAULT NULL
于 2013-02-12T17:49:05.307 回答
2
alter table dogs
alter column breed set default 'boxer'

alter table dogs
alter column breed set default null
于 2013-02-12T17:47:40.847 回答