PostgreSQLでユニーク制約を削除しようとしたとき「you can drop constraint on table instead」

今回はPostgreSQLでユニーク制約を削除しようとしたとき「ERROR: cannot drop index 〇〇 because constraint 〇〇 on table ×× requires it : You can drop constraint 〇〇 on table ×× instead.」というエラーが起きたときの対処法についてご紹介いたします。



PostgreSQLでユニーク制約を削除しようとしたとき「you can drop constraint on table instead」

PostgreSQLでユニーク制約を削除しようとしたとき「you can drop constraint on table instead」

PostgreSQLでユニーク制約を消したく、「DROP INDEX 〇〇(制約名);」のSQLを流すと表題のエラーが出ました。

結論を書くと、PostgreSQLにはUNIQUE CONSTRAINTS(制約)とUNIQUE INDEXの二種類があり、UNIQUE CONSTRAINTS(制約)をDROP INDEXで消そうとすると表題のエラーが発生します。

PostgreSQLのUNIQUE CONSTRAINTS(制約)とUNIQUE INDEXの違いについては下記の記事にまとめました。
PostgreSQLにおけるUNIQUE制約とUNIQUE INDEXの違いとは?

UNIQUE INDEXではなくUNIQUE CONSTRAINTS(制約)を削除したい場合は、下記のようなSQLを流すとUNIQUE CONSTRAINTS(制約)を削除することが可能です。
「ALTER TABLE ××(テーブル名) DROP CONSTRAINT 〇〇(制約名);」

終わりに

今回はPostgreSQLでユニーク制約を削除しようとしたとき「ERROR: cannot drop index 〇〇 because constraint 〇〇 on table ×× requires it : You can drop constraint 〇〇 on table ×× instead.」というエラーが起きたときの対処法についてご紹介いたしました。

最後までお読みいただきありがとうございます。
ブログやTwitterでのシェアOKです。
コメントもお待ちしております。
誤植や勘違いなどございましたらコメント欄にて教えていただけると幸いです。






PostgreSQL

Posted by ちこ