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) - 已找到子记录
另外一种方法:
删除表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'
查找删除相应的子表记录
然后删除主表记录