使用自引用外键向表添加行

tri*_*gee 3 sql oracle

我创建了一个名为 TableTest 的表,其中包含两列entdepent是主键,dep是引用 的外键ent。我使用以下方法创建表:

CREATE TABLE TableTest (
  ent varchar(2) NOT NULL,
  dep varchar(2),
  PRIMARY KEY (ent),
  FOREIGN KEY (dep) REFERENCES TableTest(ent)
);
Run Code Online (Sandbox Code Playgroud)

我必须证明这三个值 (A1,A2,A3) 相互依赖。A3 依赖于 A1 等。但是,当我尝试在表中插入一行时,例如:

INSERT INTO TableTest(ent, dep)
  VALUES ('A1','A3');
Run Code Online (Sandbox Code Playgroud)

我收到以下错误,经过研究后我仍然不知道如何解决这个问题。我对 SQL 很陌生。

ORA-02291: 违反完整性约束 - 未找到父键

任何帮助是极大的赞赏!

Pab*_*ruz 5

首先,您需要插入root value.

> insert into TableTest values ('A1', null);
> insert into TableTest values ('A3', 'A1');
Run Code Online (Sandbox Code Playgroud)