【发布时间】:2017-11-10 00:09:43
【问题描述】:
我想向我的一个表字段添加一个 NOT NULL 约束,但前提是另一个字段具有特定值。
所以我有一个services 表:
services:
- id
- professional_id
- is_master
我想写一个 SQL 约束,只要is_master 为假,professional_id 就不能为空。我试过这样的事情:
CREATE TABLE "services" (
"id" text NOT NULL,
"professional_id" text REFERENCES professionals ON DELETE CASCADE ON UPDATE CASCADE,
EXCLUDE USING gist (
professional_id WITH =,
) WHERE (NOT is_master),
"is_master" boolean NOT NULL DEFAULT false,
PRIMARY KEY ("id")
);
编写此 SQL 的正确方法是什么?
【问题讨论】:
-
check (not is_master and professional_id is not null)?
标签: sql postgresql