簡體   English   中英

使用 PostgresQL 檢查現有列的約束

[英]Check constraint on existing column with PostgresQL

我正在嘗試對現有列設置檢查約束。

有什么辦法可以從 PostgreSQL 實現這一點嗎?

使用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'));

如果您同意(或想要)Postgres 生成約束名稱,您可以使用以下速記語法。

ALTER TABLE foo
    ADD CHECK (column_1 > 2);

您可以使用alter table命令添加新約束。 文檔這個例子:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM