ORA-02291: integrity constraint violated - parent key not found(违反完整约束条件 - 未找到父项关键字)
Oracle含义
违反了外键约束。找不到与插入子表的值对应的父行;也就是说,所引用的记录不存在。
原因
INSERT/UPDATE 引用了不存在的父记录、父表行尚未插入、加载顺序错误(先子后父),或因大小写或空白差异导致匹配失败。
解决方法
先向父表插入相关记录,再插入子表。确认引用存在:SELECT * FROM parent_table WHERE key_col = value; 在批量加载中按正确顺序处理表(先父表)。要找出违规的行,用 NOT IN / 反连接将子表中的值与父表比较。
同一数据库的其他条目
- ORA-00604error occurred at recursive SQL level(递归 SQL 级别出错)
- ORA-01438value larger than specified precision allowed for this column(值大于此列允许的指定精度)
- ORA-01400cannot insert NULL into (column)(无法将 NULL 插入(列))
- ORA-02292integrity constraint violated - child record found(违反完整约束条件 - 已找到子记录)
- ORA-00979not a GROUP BY expression(不是 GROUP BY 表达式)
- ORA-00918column ambiguously defined(列定义不明确)
- ORA-06550line/column PLS-... PL/SQL compilation error(行/列 PLS-... PL/SQL 编译错误)