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

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'

查找删除相应的子表记录

然后删除主表记录

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容