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