他のバージョンの文書 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9.6 | 9.5 | 9.4 | 9.3 | 9.2 | 9.1 | 9.0 | 8.4 | 8.3 | 8.2 | 8.1 | 8.0 | 7.4 | 7.3 | 7.2

DROP INDEX

DROP INDEX — インデックスを削除する

概要

DROP INDEX [ CONCURRENTLY ] [ IF EXISTS ] name [, ...] [ CASCADE | RESTRICT ]

説明

DROP INDEXはデータベースシステムから既存のインデックスを削除します。 このコマンドを実行するには、そのインデックスを所有していなければなりません。

パラメータ

CONCURRENTLY

インデックスのテーブルに対して同時に実行される選択、挿入、更新、削除をロックすることなくインデックスを削除します。 通常のDROP INDEXではテーブルに対するACCESS EXCLUSIVEロックを獲得し、インデックスの削除が完了するまで他のアクセスをブロックします。 このオプションを使うと、競合するトランザクションが完了するまでコマンドは待たされます。

このオプションを使用する時に注意すべき、複数の警告があります。 指定できるインデックス名は1つだけであり、また、CASCADEオプションはサポートされません。 (したがってUNIQUEまたはPRIMARY KEY制約をサポートするインデックスをこの方法で削除することはできません。) また、通常のDROP INDEXはトランザクションブロックの中で行うことができますが、DROP INDEX CONCURRENTLYはできません。 最後に、パーティションテーブルのインデックスをこのオプションで削除することはできません。

一時テーブルに対してはDROP INDEXは常に同時削除ではありません。他のセッションはアクセスできませんし、同時でないインデックス削除の方がより安価だからです。

IF EXISTS

インデックスが存在しない場合でもエラーになりません。 この場合注意メッセージが発行されます。

name

削除するインデックスの名前です(スキーマ修飾名も可)。

CASCADE

そのインデックスに依存しているオブジェクトを自動的に削除し、さらにそれらのオブジェクトに依存するすべてのオブジェクトも削除します(5.14参照)。

RESTRICT

依存しているオブジェクトがある場合、そのインデックスの削除を拒否します。 こちらがデフォルトです。

次のコマンドはインデックスtitle_idxを削除します。

DROP INDEX title_idx;

互換性

DROP INDEXPostgreSQLの言語拡張です。 標準SQLにはインデックスに関する規定はありません。

関連項目

CREATE INDEX