使用PostgresQL检查现有列的约束

Pas*_*per 6 sql database postgresql

我正在尝试对现有列进行检查约束.

有什么办法可以从PostgreSQL实现这个目的吗?

a_h*_*ame 14

使用alter table添加一个新的约束:

alter table foo 
   add constraint check_positive check (the_column > 0);
Run Code Online (Sandbox Code Playgroud)

更多细节和示例在手册中: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'));
Run Code Online (Sandbox Code Playgroud)


Gin*_*ino 6

如果您同意(或想要)Postgres 生成约束名称,您可以使用以下速记语法。

ALTER TABLE foo
    ADD CHECK (column_1 > 2);
Run Code Online (Sandbox Code Playgroud)