美文网首页
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