加入收藏 | 设为首页 | 会员中心 | 我要投稿 新余站长网 (https://www.0790zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长百科 > 正文

oracle – 找不到ORA-02298父键?

发布时间:2020-12-31 00:09:21 所属栏目:站长百科 来源:网络整理
导读:每次尝试时我都被困在这个年代 – 它出现了以下错误:无法验证 – 未找到父键. 这是代码(http://i.imgur.com/6JBzTiM.jpg): 我可以在Employees表中创建主键并将其分配给EmployeeId.但是当试图在WorkPackages表中添加它作为外键时(使用下面的代码) ALTER TAB

每次尝试时我都被困在这个年代 – 它出现了以下错误:无法验证 – 未找到父键.

这是代码(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.

(编辑:新余站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读