我试图对现有列进行检查约束。
有没有办法从PostgreSQL实现这个目标?
答案 0 :(得分:13)
使用alter table
添加新约束:
alter table foo
add constraint check_positive check (the_column > 0);
手册中有更多细节和示例:
http://www.postgresql.org/docs/current/static/sql-altertable.html#AEN70043
修改强>
使用IN
运算符
alter table foo
add constraint check_positive check (some_code in ('A','B'));
答案 1 :(得分:0)
您可以使用alter table
命令添加新约束。来自documentation这个例子:
ALTER TABLE distributors
ADD CONSTRAINT zipchk CHECK (char_length(zipcode) = 5) NO INHERIT;
您必须根据当地要求替换约束名称以及表名称和内容。
答案 2 :(得分:0)
这应该这样做:
create table test (
id serial
);
alter table test
add constraint id_not_null
check (id is not null);
答案 3 :(得分:0)
如果您同意(或希望)Postgres生成约束名称,则可以使用以下速记语法。
ALTER TABLE foo
ADD CHECK (column_1 > 2);