在postgresql上将默认值设置为null

时间:2013-02-12 17:42:04

标签: sql postgresql

我读到here我应该可以像这样设置列的默认值:

ALTER [ COLUMN ] column SET DEFAULT expression

但是这个:

ALTER address.IsActive SET DEFAULT NULL

给我这个错误:

  

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

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

4 个答案:

答案 0 :(得分:7)

正确的语法是:

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;

答案 1 :(得分:5)

您没有运行完整的声明。您错过了ALTER TABLE部分:

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

其中action是以下之一:   
[...]

答案 2 :(得分:2)

尝试如下......它会起作用....

ALTER TABLE address ALTER COLUMN IsActive SET DEFAULT NULL

答案 3 :(得分:0)

alter table dogs
alter column breed set default 'boxer'

alter table dogs
alter column breed set default null