Postgresql
什麼約束不能寫成表約束?
我正在閱讀 Postgres 7.3文件以向 PostgreSQL 表添加約束。
它說:
要添加不能寫為表約束的非空約束,請使用以下語法:
ALTER TABLE 產品 ALTER COLUMN product_no SET NOT NULL;
約束會被立即檢查,所以表數據必須滿足約束才能添加。
我不明白*“不能寫成表約束”是*什麼意思?
什麼是表約束?什麼約束不立即檢查?
這只是語法問題。
列約束定義如下
CREATE TABLE ... ( col type [CONSTRAINT name] constraint_definition, ... );
而表約束看起來像
CREATE TABLE ... ( col type, [CONSTRAINT name] constraint_definition, ... );
在這兩種情況下,產生的約束是相同的。
所以文件說你需要
NOT NULL
在列定義中寫,你不能在其他任何地方寫。