Ser*_*pov 54 sql database postgresql
在我的PostgreSQL数据库中,我有一个以这种方式创建的唯一索引:
CREATE UNIQUE INDEX <my_index> ON <my_table> USING btree (my_column)
有没有办法改变索引以删除唯一约束?我看了很多 ALTER INDEX文档,但它似乎没有做我需要的.
我知道我可以删除索引并创建另一个索引,但如果它存在,我想找到更好的方法.
小智 85
您可以删除唯一的CONSTRAINT,而不是INDEX自身.
检查你的CONSTRAINTS通行证select * from information_schema.table_constraints;
然后,如果你找到一个,你应该能够放弃它:
ALTER TABLE <my_table> DROP CONSTRAINT <constraint_name>
val*_*tis 21
假设您有以下内容:
Indexes:
    "feature_pkey" PRIMARY KEY, btree (id, f_id)
    "feature_unique" UNIQUE, btree (feature, f_class)
    "feature_constraint" UNIQUE CONSTRAINT, btree (feature, f_class)
要删除UNIQUE CONSTRAINT,您将使用ALTER TABLE:
ALTER TABLE feature DROP CONSTRAINT feature_constraint;
要删除PRIMARY KEY,您还可以使用ALTER TABLE:
ALTER TABLE feature DROP CONSTRAINT feature_pkey;
要删除UNIQUE [index],您将使用DROP INDEX:
DROP INDEX feature_unique;
我认为这是不可能的...即使在pgAdmin III UI中,如果您尝试编辑使用语句创建的约束,则“唯一”框将显示为灰色。您无法通过用户界面进行更改。结合您对ALTER INDEX文档的研究,我认为这是不可能完成的。
| 归档时间: | 
 | 
| 查看次数: | 44384 次 | 
| 最近记录: |