美文网首页
ORA-02292: 违反完整约束条件 处理

ORA-02292: 违反完整约束条件 处理

作者: 匆匆少年 | 来源:发表于2016-07-05 11:55 被阅读2525次

    ORA-02292: 违反完整约束条件 (用户名.约束名) - 已找到子记录:

    因是:删除该表时,有依赖该表的子表数据,需要删除该条记录或者禁用约束。

    内容少:可删除子数据即可。
    删除之前:查找数据,相关查询语句

    user_constraints 表select * from user_constraints t where t.CONSTRAINT_NAME='约束名'
    select * from user_constraints t where t.table_name = '表名'

    内容多:禁用约束,再删除数据,然后启动约束即可。
    查询到到表名和约束名。我们用语句

    禁用该约束
    alter table 表名 disable constraint 约束名;
    启用约束
    alter table 表名 enable constraint 约束名;

    eg:
    ORA-02292: 违反完整约束条件 (GOADEV.FK_OZ_ORG_C_REFERENCE_OZ_ORG_O) - 已找到子记录

    Paste_Image.png Paste_Image.png

    另外一种方法:
    删除表A的记录时,Oracle 报错:“ORA-02292:违反完整约束条件(XXX.FKXXX)- 已找到子记录

    直接运行
    select a.constraint_name, a.table_name, b.constraint_name from user_constraints a, user_constraints bwhere a.constraint_type = 'R' and b.constraint_type = 'P' and a.r_constraint_name = b.constraint_nameand a.constraint_name = 'FKXXX'

    查找删除相应的子表记录

    然后删除主表记录

    相关文章

      网友评论

          本文标题:ORA-02292: 违反完整约束条件 处理

          本文链接:https://www.haomeiwen.com/subject/riuhjttx.html