【发布时间】:2013-06-01 05:50:42
【问题描述】:
我有一个不会启用的引用约束,即使引用的值确实在引用的表中。我仔细检查了约束脚本和两个表中的拼写。
当我尝试启用约束时,返回的错误是“找不到父键”。我物理比较了数据,所需的值确实在引用的表中。
引用的列设置为主键并启用。
所涉及的过程涉及通过 dblink 从另一个模式/数据库加载/传输数据。
在数据传输的源表中,确实启用了类似的约束。
由于数据敏感性,无法真正发布数据,只是希望我能对进一步检查的事情有所了解。
任何想法或建议表示赞赏。
约束代码:
ALTER TABLE SR2.LOG ADD (
CONSTRAINT FF1
FOREIGN KEY (NOTCH_ID)
REFERENCES SR2.NOTCH (ID)
DISABLE NOVALIDATE);
【问题讨论】:
-
在您验证 FK 时,用户是否继续在任何父表或子表中插入数据?这是在生产数据库上完成的吗?
-
源表是生产的,但是在引用的表中可以看到引用的值。
-
也许用户进程插入数据的顺序可能是原因。首先插入子表之类的东西。不过只是一个想法。您是否尝试过 EXCEPTIONS 子句?