使用PostgresQL检查现有列上的约束

使用PostgresQL检查现有列上的约束,sql,database,postgresql,Sql,Database,Postgresql,我试图对现有列设置检查约束 有没有办法通过PostgreSQL实现这一点?使用alter table添加新的约束: alter table foo add constraint check_positive check (the_column > 0); 手册中有更多详细信息和示例: 编辑 通过使用中的运算符,以相同的方式检查特定值: alter table foo add constraint check_positive check (some_code in ('

我试图对现有列设置检查约束


有没有办法通过PostgreSQL实现这一点?

使用
alter table
添加新的约束:

alter table foo 
   add constraint check_positive check (the_column > 0);
手册中有更多详细信息和示例:

编辑

通过使用中的
运算符,以相同的方式检查特定值:

alter table foo 
   add constraint check_positive check (some_code in ('A','B'));

您可以使用
altertable
命令添加新约束。从这个例子中:

ALTER TABLE distributors 
ADD CONSTRAINT zipchk CHECK (char_length(zipcode) = 5) NO INHERIT;
您必须根据本地需求替换约束名称、表名称和内容

这应该可以做到:

create table test (
    id serial 
);

alter table test
add constraint id_not_null
check (id is not null);
如果您同意(或希望)Postgres生成约束名称,可以使用以下速记语法

ALTER TABLE foo
    ADD CHECK (column_1 > 2);

当然到目前为止你尝试了什么?你检查过文档了吗?@frlan Postgres是postgresql的一个完全可以接受的替代名称。你如何将枚举检查放入约束中?什么是枚举检查?我的问题是针对@fective DeveloperLike constriant for(“ABC”,“DEF”)