首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Postgres不为唯一的键约束重用唯一索引吗?

问Postgres不为唯一的键约束重用唯一索引吗?
EN

Stack Overflow用户
提问于 2019-01-02 16:14:12
回答 1查看 172关注 0票数 0

有了Oracle的经验,我假设每个唯一的约束都会重用唯一的索引。

我创建了模式填充脚本,该脚本创建了命名唯一索引,然后创建了相同的唯一约束。这样,我希望显式地设置索引名,而不是在Postgres默认命名模式上进行中继。

如实验所示,我得到了两个定义相同的索引,结果如下:

代码语言:javascript
复制
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不为唯一的键约束重用唯一索引吗?

注意到I不能删除与唯一约束对应的索引(错误表示相关约束),但是如果删除约束,索引就会自动删除。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-02 17:15:25

在postgres中,创建唯一约束会自动创建索引。还可以通过使用ALTER TABLE ttt add constraint ccc USING xxx语法:文档来提升现有索引来创建约束。

代码语言:javascript
复制
ALTER TABLE agent
   ADD CONSTRAINT agent_uk UNIQUE USING agent_ux;

未测

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54009615

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档