使用PostgresQL检查现有列的约束

时间:2015-02-12 15:22:11

标签: sql database postgresql

我试图对现有列进行检查约束。

有没有办法从PostgreSQL实现这个目标?

4 个答案:

答案 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);