MySQL 8.0 リファレンスマニュアル MySQL NDB Cluster 8.0 を含む

このページは機械翻訳したものです。

13.1.32 DROP TABLE ステートメント

DROP [TEMPORARY] TABLE [IF EXISTS]
    tbl_name [, tbl_name] ...
    [RESTRICT | CASCADE]

DROP TABLE は、1 つ以上のテーブルを削除します。 各テーブルに対する DROP 権限が必要です。

このステートメントを使用した注意してください。 テーブルごとに、テーブル定義およびすべてのテーブルデータが削除されます。 テーブルがパーティション化されている場合、ステートメントはテーブル定義、そのすべてのパーティション、それらのパーティションに格納されているすべてのデータ、および削除されたテーブルに関連付けられているすべてのパーティション定義を削除します。

テーブルを削除すると、そのテーブルのトリガーも削除されます。

DROP TABLE では、TEMPORARY キーワードとともに使用する場合を除き、暗黙的なコミットが発生します。 セクション13.3.3「暗黙的なコミットを発生させるステートメント」を参照してください。

重要

テーブルを削除しても、そのテーブル専用に付与された権限は自動的には削除されません。 手動で削除する必要があります。 セクション13.7.1.6「GRANT ステートメント」を参照してください。

引数リストに指定されたテーブルが存在しない場合、DROP TABLE の動作は IF EXISTS 句が指定されているかどうかによって異なります:

IF EXISTS は、データディクショナリにエントリがあり、記憶域エンジンによって管理されるテーブルがない異常な状況でテーブルを削除する場合にも役立ちます。 (たとえば、ストレージエンジンからテーブルを削除したあと、データディクショナリエントリを削除する前に異常なサーバーイグジットが発生した場合。)

TEMPORARY キーワードには、次の効果があります。

TEMPORARY 以外のテーブルを誤って削除しないようにするには、TEMPORARY キーワードを含めることをお薦めします。

RESTRICT および CASCADE キーワードは何も行いません。 他のデータベースシステムからの移植を容易にすることができます。

DROP TABLE はすべての innodb_force_recovery 設定でサポートされているわけではありません。 セクション15.21.2「InnoDB のリカバリの強制的な実行」を参照してください。