如何为postgres中的列设置非空约束

问题描述

我尝试将 null 设置为如下所示的列。

ALTER TABLE myschema.table ALTER COLUMN (test_id,type) SET NOT NULL;

但它返回语法错误,如 Syntax error at or near Line 3,Position 47

是否有任何适当的方法可以实现这一目标?

如果有人有意见,请告诉我。

谢谢

解决方法

您不能在括号中提供列列表,您需要使用多个以逗号分隔的 ALTER COLUMN 选项:

ALTER TABLE the_table
    ALTER COLUMN test_id set not null,ALTER COLUMN type SET NOT NULL;
,

尝试对两列分别进行:

ALTER TABLE myschema.table ALTER COLUMN test_id SET NOT NULL;

ALTER TABLE myschema.table ALTER COLUMN type SET NOT NULL;