oracle – 找不到ORA-02298父键?

前端之家收集整理的这篇文章主要介绍了oracle – 找不到ORA-02298父键?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
每次尝试时我都被困在这个年代 – 它出现了以下错误:无法验证 – 未找到父键.

这是代码(http://i.imgur.com/6JBzTiM.jpg):

我可以在Employees表中创建主键并将其分配给EmployeeId.但是当试图在WorkPackages表中添加它作为外键时(使用下面的代码)

ALTER TABLE WORKPACKAGES
ADD FOREIGN KEY (EMPLOYEEID) REFERENCES EMPLOYEES (EMPLOYEEID);

它不断提出验证错误.

我究竟做错了什么?

解决方法

ALTER TABLE WORKPACKAGES
ADD FOREIGN KEY (EMPLOYEEID) REFERENCES EMPLOYEES (EMPLOYEEID);

强制执行此密钥时,Oracle会检查Workcages表中存在的所有employeeid是否存在于Employees表中.

你的选择:

找到offending keys by running

SELECT employeeid
FROM   workpackages
WHERE  employeeid NOT IN (SELECT employeeid
                          FROM   employees);

然后将它们插入到employee表中.

另一种选择是使用NOVALIDATE,以便不检查现有数据,但将验证任何新的插入/更新.有关此问题,请参阅this fiddle.

猜你在找的Oracle相关文章