鉴于以下表格:
CREATE TABLE verified_name (
id SERIAL PRIMARY KEY,
name TEXT NOT NULL,
email TEXT NOT NULL,
UNIQUE (name, email)
);
CREATE TABLE address (
id SERIAL PRIMARY KEY,
name TEXT NOT NULL,
email TEXT NOT NULL,
verified_name_id INTEGER NULL REFERENCES verified_name(id)
);
Run Code Online (Sandbox Code Playgroud)
如何添加附加约束,当address.verified_name_id
不为 NULL 时,name
和email
字段address
必须与引用的字段匹配verified_name
?
我尝试将以下内容添加到address
:
FOREIGN KEY (name, email) REFERENCES verified_name(name, email)
Run Code Online (Sandbox Code Playgroud)
...但即使verified_name_id
是 NULL ,该约束也会被应用。
我正在寻找类似于部分索引语法的东西,带有像这样的子句WHERE verified_name_id IS NOT NULL
,但是简单地将这样的子句附加到 …
postgresql normalization foreign-key database-design constraint