为现有的PostgreSQL索引添加唯一约束

mar*_*nza 8 sql postgresql indexing ruby-on-rails unique-constraint

我的PostgreSQL 9.3数据库中有一个索引:

CREATE INDEX index_foos_on_bar_and_baz ON foos USING btree (bar, baz);
Run Code Online (Sandbox Code Playgroud)

(来自使用Ruby on Rails的模式迁移)

索引存在并使事情变得更快.既然我已经清理了重复的foos,我想让这个索引变得独一无二:

CREATE UNIQUE INDEX index_foos_on_bar_and_baz ON foos USING btree (bar, baz);
Run Code Online (Sandbox Code Playgroud)

有没有办法改变现有的索引并使其独一无二?或者更容易/更快地删除现有索引并创建一个新的独特索引?

Tha*_*anh 10

无法将索引更改为唯一索引.您可以在alter index文档中查看可以更改为索引的内容.

在这种情况下,您需要删除并创建新的唯一索引.