Oracle11g 删除集NULL上的Oracle约束无法验证

Oracle11g 删除集NULL上的Oracle约束无法验证,oracle11g,Oracle11g,Oracle 11.2.0.2-导入数据从10.2.0.3实例中抽取一个模式,在该实例中,多个约束设置为ON DELETE set NULL,因此(根据设计)存在一些孤立行。在数据导入期间,我收到了关于找不到父键的错误,因此我使用novalidate在新环境中重新创建了约束(因为我希望现有孤立项保持孤立,但最初需要创建引用有效父行的新行) 但是,现在我不知道如何使这些索引“有效”,因为oracle抱怨在我尝试启用时找不到父键 如何在维护现有孤立项的同时将这些约束设置为有效?如果父键不存在,则引用

Oracle 11.2.0.2-导入数据从10.2.0.3实例中抽取一个模式,在该实例中,多个约束设置为ON DELETE set NULL,因此(根据设计)存在一些孤立行。在数据导入期间,我收到了关于找不到父键的错误,因此我使用novalidate在新环境中重新创建了约束(因为我希望现有孤立项保持孤立,但最初需要创建引用有效父行的新行)

但是,现在我不知道如何使这些索引“有效”,因为oracle抱怨在我尝试启用时找不到父键


如何在维护现有孤立项的同时将这些约束设置为有效?

如果父键不存在,则引用约束不能设置为“有效”。如果您使用的是ON DELETE SET NULL,我希望子表的父键仍然为NULL。在您的情况下,我会查找不包含NULL的行-这些是那些被约束绊倒的行。

对不起,我不完全理解-我不应该期望混合使用具有匹配父行的子行和具有NULL的其他行吗?如果约束未处于有效状态,该约束是否仍然有效?当您尝试将约束设置为“已验证”时,Oracle将对其进行验证。如果有任何子行没有匹配的父行,则会引发异常。如果不希望对现有行验证约束,请使用
启用NOVALIDATE