• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    ORA-02298: 无法验证 (约束)提示未找到父项关键字的解决办法

    --在用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: 无法验证 (约束)提示未找到父项关键字的解决办法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

    您可能感兴趣的文章:
    • 查找oracle数据库表中是否存在系统关键字的方法
    • oracle关键字作为字段名使用方法
    • Oracle AS关键字 提示错误
    上一篇:Oracle批量导入文本文件快速的方法(sqlldr实现)
    下一篇:Oracle Database Server 'TNS Listener'远程数据投毒漏洞(CVE-2012-1675)的完美解决方法
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    ORA-02298: 无法验证 (约束)提示未找到父项关键字的解决办法 ORA-02298,无法,验证,约束,