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