在postgresql上将默认值设置为null

125*_*748 9 sql postgresql

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

ALTER [ COLUMN ] column SET DEFAULT expression
Run Code Online (Sandbox Code Playgroud)

但是这个:

ALTER address.IsActive SET DEFAULT NULL
Run Code Online (Sandbox Code Playgroud)

给我这个错误:

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

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

a_h*_*ame 10

正确的语法是:

ALTER TABLE table_name ALTER COLUMN column_name SET DEFAULT NULL;
Run Code Online (Sandbox Code Playgroud)

对于多个列,您可以ALTER COLUMN按照手册中的说明重复该部分:

ALTER TABLE table_name 
    ALTER COLUMN foo SET DEFAULT NULL,
    ALTER COLUMN bar SET DEFAULT 0;
Run Code Online (Sandbox Code Playgroud)

  • @thomas - `action [,...]`表示你可以添加任意数量的逗号,用逗号分隔. (2认同)

Álv*_*lez 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
Run Code Online (Sandbox Code Playgroud)

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