MySQL 8.0 リファレンスマニュアル


13.1.27 DROP INDEX ステートメント

DROP INDEX index_name ON tbl_name
    [algorithm_option | lock_option] ...

algorithm_option:
    ALGORITHM [=] {DEFAULT | INPLACE | COPY}

lock_option:
    LOCK [=] {DEFAULT | NONE | SHARED | EXCLUSIVE}

DROP INDEX は、テーブル tbl_name から index_name という名前のインデックスを削除します。 このステートメントは、このインデックスを削除するために ALTER TABLE ステートメントにマップされます。 セクション13.1.9「ALTER TABLE ステートメント」を参照してください。

主キーを削除するには、インデックス名は常に PRIMARY です。これは、PRIMARY が予約語であるため、引用符で囲まれた識別子として指定する必要があります。

DROP INDEX `PRIMARY` ON t;

NDB テーブルの可変幅カラム上のインデックスはオンラインで、つまり、テーブルコピーを行うことなく削除されます。 テーブルは、ほかの NDB Cluster API ノードからのアクセスに対してロックされませんが、操作中は same API ノード上のほかの操作に対してロックされます。 これは、サーバーが実行できると判断した場合は常に、そのサーバーによって自動的に実行されます。これを実行するために、特殊な SQL 構文やサーバーオプションを使用する必要はありません。

ALGORITHM 句および LOCK 句を指定して、インデックスの変更中にテーブルの読取りおよび書込みを行うためのテーブルのコピー方法および同時実行性のレベルに影響を与えることができます。 これらには、ALTER TABLE ステートメントの場合と同じ意味があります。 詳細は、セクション13.1.9「ALTER TABLE ステートメント」を参照してください。

MySQL NDB Cluster は、標準 MySQL Server でサポートされているものと同じ ALGORITHM=INPLACE 構文を使用したオンライン操作をサポートします。 詳しくはセクション23.5.11「NDB Cluster での ALTER TABLE を使用したオンライン操作」,をご覧ください。


関連キーワード:  ステートメント, CREATE, TABLE, DROP, サブクエリー, FUNCTION, テーブル, SLAVE, 関数, REPLICA