每次尝试时,我一直坚持这个问题 - 它出现以下错误:无法验证 - 未找到父 key 。
这是代码( 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 会检查 Workpackages 表中存在的所有 employeeid 是否存在于 Employees 表中。
您的选择:
找到 offending keys by running
SELECT employeeid
FROM workpackages
WHERE employeeid NOT IN (SELECT employeeid
FROM employees);
然后将它们插入到员工表中。
另一种选择是使用 NOVALIDATE 以便不检查现有数据,但将验证任何新的插入/更新。有关这方面的演示,请参见 this fiddle。
关于oracle - ORA-02298 未找到父 key ?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28732053/