ORA-02298: 无法验证 (约束)提示未找到父项关键字的解决办法
技术  /  管理员 发布于 7年前   202
--在用PL/SQL导入表数据的时候报错 ORA-02298: 无法验证 (PNET.POST_CLOB_FK) - 未找到父项关键字
--发现是启用外键约束时报的错alter table DM_VOLREV enable constraint VR_VOLID_FK;
/*原因分析:
你要插入的表A里,有外键连接到另一个表B的主键,你在表A的外键列插入的值,在表B的主键列找不到就不能插入。
主要看两表中的数据是否一致,从表中要关联外键的字段中的数据必须包含在主表相关字段的数据内。
处理的方法有:
1> 先不验证已有数据的CONSTRANT,加上参数NOVALIDATE.*/ALTER TABLE PN_POST ADD CONSTRAINT POST_CLOB_FK FOREIGN KEY (POST_BODY_ID) REFERENCES PN_POST_BODY_CLOB (OBJECT_ID) NOVALIDATE;--2>首先查看两个表对应起来的数据有多少select count(*) from dm_volrev t,DM_VOLID k where t.vr_volid = k.vi_volid;--再分别查看单独的数据,发现外键表多了一行select count(*) from dm_volrev t;select count(*) from DM_VOLID k;-找到多的行并删除select t.vr_volid from dm_volrev t where t.vr_volid not in (select k.vi_volid from DM_VOLID k);delete from dm_volrev t where t.vr_volid = 479908;--直接重新执行启用外键的语句,或者删除之前的外键创建新的外键alter table DM_VOLREV drop constraint VR_VOLID_FK;ALTER TABLE DM_VOLREV ADD CONSTRAINT VR_VOLID_FK foreign KEY (VR_VOLID) references DM_VOLID(VI_VOLID) VALIDATE;/*启用约束:enable( validate) :启用约束,创建索引,对已有及新加入的数据执行约束.enable novalidate :启用约束,创建索引,仅对新加入的数据强制执行约束,而不管表中的现有数据.禁用约束:disable( novalidate):关闭约束,删除索引,可以对约束列的数据进行修改等操作.disable validate :关闭约束,删除索引,不能对表进行 插入/更新/删除等操作.*/
以上所述是小编给大家介绍的ORA-02298: 无法验证 (约束)提示未找到父项关键字的解决办法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对站的支持!
122 在
学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
Copyright·© 2019 侯体宗版权所有·
粤ICP备20027696号