每次尝试时我都被困在这个年代 – 它出现了以下错误:无法验证 – 未找到父键.
这是代码(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表中.
你的选择:
SELECT employeeid FROM workpackages WHERE employeeid NOT IN (SELECT employeeid FROM employees);
然后将它们插入到employee表中.
另一种选择是使用NOVALIDATE,以便不检查现有数据,但将验证任何新的插入/更新.有关此问题,请参阅this fiddle.