我有一张这样的表,
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
答案 0 :(得分:2)
将MD报告设置为self(即将Reports-To
列设置为staff-id
列值)或使Reports-To
列可以为空(外键列可以等于NULL
)