何时将数据插入到已添加约束(外键)的子表中
约束自动禁用。
你能帮助我..........答案 0 :(得分:1)
约束不能“自动”禁用 - 通过发出此SQL(作为表/约束所有者)来检查它的当前状态:
选择状态,通过user_constraints验证,其中constraint_name =' theNameOfYourConstraint '
可能是在您的操作之前已被禁用的情况。在明确启用之前,它将保持该状态。
<强> [附加] 强>
我现在从后面的评论中看到,禁用似乎是由于SQL * Loader中的直接路径加载。如果你想阻止这种情况,我认为你唯一的选择是使用传统的加载并处理异常。将文件绑定到外部表定义将允许您使用更多过程方法,因为您可以像处理Oracle表一样处理文件。
来自Oracle文档:
依赖于其他行或表的完整性约束(例如引用约束)在直接路径加载之前被禁用,并且必须在之后重新启用。
答案 1 :(得分:1)
从Utilties手册中,对于直接路径加载,将自动禁用关系完整性和检查约束。传统路径不应该有这个问题。
有一个REENABLE子句可以在直接路径加载结束时启用约束。
答案 2 :(得分:0)
您必须向我们提供更多信息/代码。 描述你的约束。 你是如何插入记录的?
重现您的问题:
select *
from user_constraints
where constraint_name = 'theNameOfYourConstraint';
do your insert here
select *
from user_constraints
where constraint_name = 'theNameOfYourConstraint';
并向我们显示输出。