【发布时间】:2015-11-09 20:06:39
【问题描述】:
我有 sql 升级脚本,其中包含许多 sql 语句(DDL,DML)。当我在 SQL 开发人员中运行此升级脚本时,它运行成功。我还在底部提交的脚本中提供。运行此升级脚本后,我可以看到数据库中的所有更改,除了唯一索引约束。当我插入一些重复记录时,它说违反了唯一约束。这意味着该表具有唯一的约束。但我不知道为什么我不能在 oracle sql developer 中查看这个约束。我可以查看其他 DDL 更改。我不知道是否有任何设置可以在 oracle sql developer 中查看。
CREATE UNIQUE INDEX "RATOR_MONITORING"."CAPTURING_UK1" ON "RATOR_MONITORING"."CAPTURING" ("DB_TABLE");
CREATE UNIQUE INDEX "RATOR_MONITORING_CONFIGURATION"."BRAND_UK1" ON "RATOR_MONITORING_CONFIGURATION"."BRAND" ("NAME");
CREATE UNIQUE INDEX "RATOR_MONITORING_CONFIGURATION"."BRAND_BUSINESS_PROCESS_UK1" ON "RATOR_MONITORING_CONFIGURATION"."BRAND_BUSINESS_PROCESS" ("BRAND_ID", "BP_ID");
CREATE UNIQUE INDEX "RATOR_MONITORING_CONFIGURATION"."BRAND_ENGINE_UK1" ON "RATOR_MONITORING_CONFIGURATION"."BRAND_ENGINE" ("BRAND_ID", "ENGINE_ID");
【问题讨论】:
-
我可能在您的解释中遗漏了一点,但创建
UNIQUE INDEX不会自动创建唯一约束。你必须明确地创建它。 -
是的,但我假设唯一约束和唯一索引是相同的。
-
您可以查询 USER_INDEXES 表以检查文件中所述的索引是否已创建,并且由于它们是 DDL,因此您不需要将它们显式标记为 COMMIT。另外,您能否告诉我们您在插入重复记录时遇到的完整错误。
标签: sql oracle oracle-sqldeveloper unique-constraint