如何在PSQL中删除唯一的多列索引?

时间:2013-01-04 19:22:59

标签: ruby-on-rails activerecord postgresql-9.1 psql

我已将以下索引添加到我的一个表中:

add_index :referral_codes, [:campaign, :subscriber], unique: true

然后我想通过添加它来测试速度增益,但我无法从我的psql数据库中删除索引。根据文件说这是不可能的,但就我所知,他们没有提供任何解释:

DROP INDEX

...使用此选项时需要注意几个注意事项。只能指定一个索引名称,并且不支持CASCADE选项。 (因此,不能以这种方式删除支持UNIQUE或PRIMARY KEY约束的索引。)...

我最终回滚我的迁移进行检查,但必须有原生的psql方式,对吧?

1 个答案:

答案 0 :(得分:0)

您可以使用SQL删除任何PG索引:

DROP INDEX <INDEX NAME>

rails会自动为您生成索引名称。如果使用psql连接到数据库并输入:\di,则可以看到已定义索引的列表。这将输出当前为数据库定义的索引列表。只需将名称复制到DROP INDEX命令,就可以了。