DROP INDEX

名前

DROP INDEX -- インデックスの削除

概要

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

説明

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

パラメータ

IF EXISTS

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

CONCURRENTLY

このオプションが使用された場合、PostgreSQLは同時実行されるテーブルに対する選択、挿入、更新、削除を防止するためのロックを獲得することなくインデックスを削除します。 通常のインデックス削除では、完了するまでテーブルへのすべての操作を閉め出すロックを獲得するまで待機します。 同時実行インデックス削除は2段階の処理です。 1段階目では、無効であり、かつ準備ができていない、とインデックスに印付けをして、その変更をコミットします 2段階目で、インデックスを参照することができるテーブルをロックするユーザがいなくなるまで待機します。

このオプションを使用する時に注意すべき、複数の警告があります。 CONCURRENTLYパラメータを指定する場合、インデックス名を1つだけ指定することができます。 通常のDROP INDEXはトランザクションブロックの中で行うことができますが、DROP INDEX CONCURRENTLYではできません。 インデックスを同時実行で削除する場合は、CASCADEオプションはサポートされません。

name

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

CASCADE

そのインデックスに依存しているオブジェクトを自動的に削除します。

RESTRICT

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

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

DROP INDEX title_idx;

互換性

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

関連項目

CREATE INDEX