【发布时间】:2014-11-18 15:04:42
【问题描述】:
我正在同一个数据库 (PostgreSQL) 中的两个单独的表上创建索引,但我收到一条错误消息,指出索引已存在。这是真的,但是,索引存在于不同的表上。改名后,就成功了。
我想知道为什么会这样?为什么数据库设计成两个表不能同名索引?
我发现有两个来源可以回答这个问题,尽管答案不同。一个用于 MySQL,另一个用于 Postgres:
【问题讨论】:
-
我不相信它是重复的,@JarrodRoberson。该问题的答案表明您可以拥有同名的索引,而我的问题暗示我的表不能具有相同的名称。我想这是一个 PostgreSQL 特定的问题?我已经删除了 MySQL 标签
-
您需要询问为 Postgres(或 Oracle)进行初始设计的人员。一些 DBMS 确实允许不同表(例如 MySQL、SQL Server)使用相同的索引名称,而有些则不允许(Postgres、Oracle、DB2、Firebird)。这是开发人员在创建 DBMS 时所做的选择。
-
谢谢@a_horse_with_no_name。大声笑,我想我希望 Postgres 的创建者之一会看到这篇文章:p。但我认为 RudiDudi 回答了我的问题
标签: database postgresql