• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:インデックスの削除と、インデック名のつけ方について)

インデックスの削除と、インデック名のつけ方について

このQ&Aのポイント
  • PostgreSQL8.2.24を使用している場合、インデックスの削除方法は「drop index インデックス名;」ですが、制約が存在する場合は「drop constraint 制約名;」を使用する必要があります。
  • インデックス名の規則は、PRIMARY KEYの場合は「テーブル名_フィールド名_pkey」、UNIQUEの場合は「テーブル名_フィールド名_key」となります。重複可の場合はどのような命名規則を使用するのかは不明です。
  • ただし、インデックスの削除とインデックス名のつけ方に関しては、PostgreSQLのバージョンや設定によって異なる場合があるため、ドキュメントを参照することをおすすめします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

少し勘違いがあるようです。 create tableで指定するprimary keyやuniqueは、重複チェックを効率的に行なうために、内部的にインデクスを定義しています。このインデクスだけをdropできてしまうと、矛盾する状態になってしまいます。 primary keyやuniqueで定義されるインデクスを削除するには、alter tableでprimary keyやuniqueの制約自体を削除する必要があります。 primary keyやuniqueで定義されるインデクスは、PostgreSQLの内部処理でインデクスを定義するため、名前も自動的に決められます。 一方、重複可のインデクスは、create indexでユーザが定義し、名前もユーザ側で指定したものになります。

関連するQ&A