【发布时间】:2014-12-10 10:54:59
【问题描述】:
我们在表 Employee 的 System_id(FK 到表 System)和 Process_id 列上有一个唯一约束 UQ_EMP_PROC_ID。
由于唯一约束异常,我们放弃了这个约束。但是,仍然存在具有相同名称的异常 UQ_EMP_PROC_ID。我们还仔细检查了,约束已被删除。我们还可以看到在同名的唯一约束上创建的索引(未删除)。这可能是问题吗?如果有,为什么?
任何帮助将不胜感激。如果需要任何进一步的信息,请告诉我。
注意:使用 Oracle 11g。
【问题讨论】:
-
约束名是否存在于user_constraints中
-
是的。我们已从 user_constraints 中删除。但我们可以在 all_constraints 中看到具有不同所有者的相同约束名称。
-
它可能是在不同的架构上创建的。约束可以同名但名称不同。检查 all_constraints 中的 Owner 字段
-
要删除约束,您应该使用
ALTER TABLE DROP CONSTRAINT命令。我很惊讶可以从 USER_CONSTRAINTS 视图中删除,如果那是您实际所做的。分享和享受。 -
@BobJarvis 我们已使用 ALTER TABLE 脚本从 USER_CONSTRAINTS 中删除。但如果它仍然抛出异常,可能的原因是什么? db中不同的owner下存在相同的约束
标签: sql oracle indexing unique-constraint