【Oracle】ORA-02292: integrity constraint
一、问题错误详情:
删除数据时,报了ORA-02292错误
delete from T_HJJC_JCJH_ZXQKGZB where bh = '1712045034213016424960'
> ORA-02292: integrity constraint (U_LIMS_BH_20240619.FK_T_HJJC_JCJH_JCWRY_ZXQKGZB) violated - child record found
二、解决思路
-
识别相关表和约束、查找依赖关系
SELECT * FROM all_cons_columns acc WHERE constraint_name = 'FK_T_HJJC_JCJH_JCWRY_ZXQKGZB' AND OWNER = 'U_LIMS_BH_20240619';
-
检查子记录
SELECT * FROM child_table_name -- 替换为实际的子表名 WHERE parent_id = '1712045034213016424960'; -- 替换为你要删除的记录的bh值
-
删除子记录 或 临时禁用约束
1.根据业务需求,决定是否可以直接删除这些子记录,或者先更新它们以解除与父记录的关联 使用DELETE或UPDATE语句处理这些子记录。 2.禁用约束,即希望保留子表数据 --禁用约束 ALTER TABLE child_table_name DISABLE CONSTRAINT FK_T_HJJC_JCJH_JCWRY_ZXQKGZB; --删除主表数据 DELETE FROM T_HJJC_JCJH_ZXQKGZB WHERE bh = '1712045034213016424960'; --重新开启约束 ALTER TABLE child_table_name ENABLE CONSTRAINT FK_T_HJJC_JCJH_JCWRY_ZXQKGZB;
原文地址:https://blog.csdn.net/xwb602625136/article/details/142339268
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!