如果我在Oracle中有一个包含两个子节点的父表,我知道我可以强制执行FK以便父节点存在。
有没有办法确保子记录只存在于其中一个子节点中,而不是两者都存在?
换句话说,如果 child1 中已存在 id 的记录,则禁止插入 child1 ?
CREATE TABLE parent (
id VARCHAR2(10) NOT NULL PRIMARY KEY,
some_date VARCHAR2(10)
);
CREATE TABLE child1 (
id VARCHAR2(10) NOT NULL PRIMARY KEY,
some_date VARCHAR2(10),
FOREIGN KEY (id) REFERENCES parent(id)
);
CREATE TABLE child2 (
id VARCHAR2(10) NOT NULL PRIMARY KEY,
some_date VARCHAR2(10),
FOREIGN KEY (id) REFERENCES parent(id)
);