内容阅读
在知识库中专注阅读,并随时返回相关工具与课程
ORA-02292常见约束
违反完整性约束 - 找到子记录
Integrity constraint violated - child record found
错误描述
对父表的 DELETE 或 UPDATE 会使通过外键约束引用父键的子记录成为孤儿记录。
可能原因
- 尝试删除有依赖子记录的父记录
- 更新子记录引用的父键值
解决方案
- 1在删除父记录前先删除子记录
- 2创建外键时使用 ON DELETE CASCADE
- 3批量操作时临时禁用约束
诊断命令
SELECT c.table_name AS child_table, c.constraint_name, cc.column_name FROM dba_constraints c JOIN dba_cons_columns cc ON c.constraint_name = cc.constraint_name WHERE c.r_constraint_name = (SELECT constraint_name FROM dba_constraints WHERE table_name = 'PARENT_TABLE' AND constraint_type = 'P');#foreign-key#constraint#child#delete#referential-integrity