【问题标题】:DDL changes not showing in Oracle sql developerDDL 更改未显示在 Oracle sql 开发人员中
【发布时间】: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


【解决方案1】:

正如 A Hocevar 所说,如果您创建索引

 create unique index test_ux on test(id);

您可以在表属性的索引选项卡中看到它(而不是在约束选项卡中)。

请注意,这里不需要 COMMIT,它在每个 DDL 语句中都隐含地完成。更常见的问题来源是 SQL Developer 中过时的元数据,即缺少 REFRESH(用户或表节点上的 ctrl R)。

如果要定义约束,添加以下语句,将重用之前定义的索引

 alter table test add constraint test_unique unique(id) using index test_ux;

查看Documentation中有关该选项的进一步讨论

【讨论】:

  • 哦,现在我看到它应该在索引选项卡中看到,而不是在约束选项卡中。但假设唯一约束和唯一索引相同。
  • 它们的用途相似,但对于 DBMS 来说是两个不同的概念。有关更多信息,请参阅此stackoverflow.com/questions/7521817/…
【解决方案2】:

我假设您正在尝试在 sql developer 的正确选项卡中查找表上的索引。如果您在那里看不到索引,原因之一可能是您的用户(您登录的用户)没有查看索引的适当权限。

【讨论】:

    【解决方案3】:

    如果您没有收到任何错误,则解决方案非常简单且繁琐。 SQL Developer 不会刷新他获取的结构。请在 Connections 视图中按 Refresh 蓝色图标(或使用 Ctrl-R)或断开连接并再次连接(或重新启动 SQL Developer)以查看您的结构更改。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-07-19
      • 1970-01-01
      • 2019-02-17
      • 2012-03-21
      • 2016-12-07
      • 2017-07-30
      相关资源
      最近更新 更多