- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:インデックスの削除と、インデック名のつけ方について)
インデックスの削除と、インデック名のつけ方について
このQ&Aのポイント
- PostgreSQL8.2.24を使用している場合、インデックスの削除方法は「drop index インデックス名;」ですが、制約が存在する場合は「drop constraint 制約名;」を使用する必要があります。
- インデックス名の規則は、PRIMARY KEYの場合は「テーブル名_フィールド名_pkey」、UNIQUEの場合は「テーブル名_フィールド名_key」となります。重複可の場合はどのような命名規則を使用するのかは不明です。
- ただし、インデックスの削除とインデックス名のつけ方に関しては、PostgreSQLのバージョンや設定によって異なる場合があるため、ドキュメントを参照することをおすすめします。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
少し勘違いがあるようです。 create tableで指定するprimary keyやuniqueは、重複チェックを効率的に行なうために、内部的にインデクスを定義しています。このインデクスだけをdropできてしまうと、矛盾する状態になってしまいます。 primary keyやuniqueで定義されるインデクスを削除するには、alter tableでprimary keyやuniqueの制約自体を削除する必要があります。 primary keyやuniqueで定義されるインデクスは、PostgreSQLの内部処理でインデクスを定義するため、名前も自動的に決められます。 一方、重複可のインデクスは、create indexでユーザが定義し、名前もユーザ側で指定したものになります。