1、执行下面sql语句报错:
SQL>delete from mtrl_export_master where EXPORT_MASTER_ID in ('25956471') 异常信息:ORA-02292: integrity constraint (HRP_1001.FK_MTRL_EXP_REFE_MTRL_EXPORT) violated - child record found
2、下面查看报错中的FK_MTRL_EXP_REFE_MTRL_EXPORT是哪个表的约束;
SQL> SELECT * FROM all_cons_columns where constraint_name='FK_MTRL_EXP_REFE_MTRL_EXPORT'; CONSTRAINT_NAME TABLE_NAME COLUMN_NAME ---------- ------------------------------ ------------------------------ FK_MTRL_EXP_REFE_MTRL_EXPORT MTRL_EXPORT_DETAIL EXPORT_MASTER_ID
3、可见 FK_MTRL_EXP_REFE_MTRL_EXPORT是 MTRL_EXPORT_DETAIL 表上 EXPORT_MASTER_ID 列的约束 ;
4、到此就明白了,原来mtrl_export_master表的EXPORT_MASTER_ID列的数据不能先删除,因为有别的表要引用该列。
这里就是 MTRL_EXPORT_DETAIL 表的 EXPORT_MASTER_ID 列要引用 mtrl_export_master 表的 EXPORT_MASTER_ID 列。
5、主表和子表数据:
SQL> select EXPORT_MASTER_ID from mtrl_export_master where EXPORT_MASTER_ID in ('25956471'); EXPORT_MASTER_ID ---------------- 25956471 SQL> select EXPORT_MASTER_ID from MTRL_EXPORT_DETAIL where EXPORT_MASTER_ID in ('25956471'); EXPORT_MASTER_ID ---------------- 25956471
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/28916011/viewspace-2735920/,如需转载,请注明出处,否则将追究法律责任。