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でユニーク制約を消したく、「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.」というエラーが起きたときの対処法についてご紹介いたしました。
ディスカッション
コメント一覧
まだ、コメントがありません