步骤1:
我有禁用约束和触发的脚本。这已成功执行。
第2步:
我有截断表的脚本。这也成功执行。
第3步:
但是,当我尝试启用约束并触发时,我的错误越来越少了。
Error report -
ORA-02298: cannot validate (EMPLOYEE.FK_829_EMP_STATUS) - parent keys not found
ORA-06512: at line 6
02298. 00000 - "cannot validate (%s.%s) - parent keys not found"
*Cause: an alter table validating constraint failed because the table has
child records.
*Action: Obvious
答案 0 :(得分:0)
您要在EMPLOYEE表上启用的约束具有父表中不存在的记录。查看您启用的约束,然后删除孤立的子代,将记录添加回父代,或使用NOVALIDATE子句,以便即使对于孤立的子代也可以启用约束(只知道您有一些违规行为)表格中将显示的“确定”。
要查找有关约束的信息:
select *
from dba_constraints
where constraint_name = 'FK_829_EMP_STATUS'
查找“ R_CONSTRAINT_NAME”列,然后:
select *
from dba_constraints
where constraint_name = '<r_constraint_name_value_from_above>'
如果需要这些列,可以查询dba_cons_columns where constraint_name = 'xxxx'
无论哪种方式,都将为您提供所涉及的表和列的图片,以便您可以像我之前所说的那样修复数据或使用NOVALIDATE启用。
-吉姆