我的PostgreSQL 9.3数据库中有一个索引:
CREATE INDEX index_foos_on_bar_and_baz ON foos USING btree (bar, baz);
(来自使用Ruby on Rails的模式迁移)
索引存在并使事情变得更快。现在我已经清理了重复的foos,我想让这个索引变得独一无二:
CREATE UNIQUE INDEX index_foos_on_bar_and_baz ON foos USING btree (bar, baz);
有没有办法改变现有索引并使其独一无二?或者更容易/更快地删除现有索引并创建一个新的独特索引?
答案 0 :(得分:7)
无法将索引更改为唯一索引。您可以在alter index document处看到可以更改为索引的内容。
在这种情况下,您需要删除并创建新的唯一索引。
答案 1 :(得分:2)
您可以通过以下方式更改索引以添加“ UNIQUE”约束:
ALTER TABLE distributors
ADD CONSTRAINT dist_id_zipcode_key
UNIQUE (dist_id, zipcode);
在此处查看官方文档:https://www.postgresql.org/docs/current/sql-altertable.html