具有2个可能子表的Oracle父表

时间:2013-09-18 13:51:49

标签: oracle

如果我在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)
);

0 个答案:

没有答案