ORA-02298: 无法验证 (PNET.POST_CLOB_FK) - 未找到父项关键字
在运行以下语句的时候,报错如下:
ALTER TABLE PN_POST
ADD CONSTRAINT POST_CLOB_FK
FOREIGN KEY (POST_BODY_ID)
REFERENCES PN_POST_BODY_CLOB (OBJECT_ID);
Error at line 1
ORA-02298: 无法验证 (PNET.POST_CLOB_FK) - 未找到父项关键字
主要原因是:
在添加CONSTRAINT的时候,默认是需要VALIDATE表中的已有数据的。
你要插入的表A里,有外键连接到另一个表B的主键,你在表A的外键列插入的值,在表B的主键列找不到就不能插入。主要看两表中的数据是否一致,从表中要关联外键的字段中的数据必须包含在主表相关字段的数据内。
处理的方法有:
1> 先不验证已有数据的CONSTRANT,加上参数NOVALIDATE.
SQL > ALTER TABLE PN_POST
ADD CONSTRAINT POST_CLOB_FK
FOREIGN KEY (POST_BODY_ID)
REFERENCES PN_POST_BODY_CLOB (OBJECT_ID)
NOVALIDATE;
2> 按照子表的外键查看一下不存在的副本记录,将不存在的父表记录补全
转自:

本文介绍了解决Oracle数据库中ORA-02298错误的方法,该错误通常发生在尝试添加外键约束时,由于子表中有未在父表中找到对应主键值的记录而导致。提供了两种解决方案:一是添加外键约束时不验证现有数据;二是修正子表中缺失父表主键值的记录。
5200

被折叠的 条评论
为什么被折叠?



