自引用表

时间:2015-01-10 01:44:17

标签: sql oracle11g

我有一张这样的表,

  table name = staff
  staff-id(pk), last-name, first-name, job-title, reports-to(fk)

报告是一个自引用键。

我已经有数据要插入到此表中。在我的数据中,所有工作人员都有报告,但MD没有报告,因为MD是最高职位。因此,当它引用无键时,如何将表创建为自引用外键,因为插入可能会导致问题。

数据到MD列是

staff-id姓氏名字职位报告 - 到

200 Vellum Harry MD 0

   CREATE TABLE staff
    ( staff-id number not null,
     last-name varchar2(20) not null,
     first-name varchar2(20),
     job-title varchar2(20) not null,
     reports-to number not null,
     CONSTRAINT staffid_pk PRIMARY KEY (staff-id)
     CONSTRAINT reportsto_fk FOREIGN KEY (staff-id) REFERENCES staff(staff-id)
     );

我可以将MD的报告 - 键作为他的主键,如果是这样再次添加会导致问题。 如何解决这个问题呢? 我正在使用oracle 11g

1 个答案:

答案 0 :(得分:2)

将MD报告设置为self(即将Reports-To列设置为staff-id列值)或使Reports-To列可以为空(外键列可以等于NULL