【发布时间】:2019-01-02 16:14:12
【问题描述】:
拥有使用 Oracle 的经验,我假设每个唯一约束都会重用唯一索引。
我创建了模式填充脚本,该脚本创建了命名的唯一索引,然后创建了相同的唯一约束。通过这种方式,我希望明确设置索引名称,而不是使用 Postgres 默认命名模式。
正如实验所示,我得到了两个具有相同定义的索引:
CREATE UNIQUE INDEX agent_ux ON agent (branch_id, initials);
ALTER TABLE agent ADD CONSTRAINT agent_uk UNIQUE (branch_id, initials);
select indexname from pg_indexes where tablename = 'agent';
agent_ux
agent_uk
Postgres 不会为唯一键约束重用唯一索引吗?
注意我不能删除索引,对应于唯一约束(错误说明相关约束),但如果我删除约束,索引会自动删除。
【问题讨论】:
-
@wildplasser 你能写出答案让我接受吗?
标签: postgresql