DROP [TEMPORARY] TABLE [IF EXISTS]tbl_name
[,tbl_name
] ... [RESTRICT | CASCADE]
DROP TABLE
は1つまたは複数のテーブルを削除します。各テーブルごとに DROP
権限を持つ必要があります。全てのテーブル データとテーブル定義が 削除されます ので、このステートメントには 注意してください !引数リストの中に名前を付けたテーブルのいずれも存在しない場合、 MySQL は、存在していなかった為にドロップできなかったテーブルを名称別に表し、エラーを戻しますが、MySQL
は既存リスト中のテーブルもすべてドロップします。
重要:テーブルがドロップされる時、テーブル上のユーザー権限は自動的にドロップ されません 。詳しくは 項3. 「GRANT
構文」 を参照してください。
パーティション テーブルに対しては、DROP TABLE
がテーブル定義と、その全てのパーティションと、それらのパーティションに格納された全てのデータを恒久的に削除する事を覚えておいて下さい。これはまた、ドロップされたテーブルに関連する領域確保定義(.par
)ファイルも削除します。
IF EXISTS
を利用して、存在していないテーブルに対してエラーが発生するのを防いでください。IF EXISTS
を使用すると、実在していないテーブルに対して NOTE
が生成されます。詳しくは 項31. 「SHOW WARNINGS
構文」 を参照してください。
RESTRICT
と CASCADE
がポーティングを簡単にする事ができます。MySQL 5.1 ではそれらは何もしません。
注意:DROP TABLE
は、TEMPORARY
キーワードを利用しない限り自動的に現在のアクティブなトランザクションを行います。
TEMPORARY
キーワードは次の効果を持ちます。
ステートメントは TEMPORARY
テーブルだけをドロップします。
ステートメントは進行中のトランザクションを終了しません。
アクセス権をチェックしません。(TEMPORARY
テーブルはそれを作成したクライアントだけが見る事ができる物なので、チェックは必要ありません。)
TEMPORARY
を利用するのは、非 TEMPORARY
テーブルを誤ってドロップしない事を保障するのに有効な方法です。