DROP {DATABASE | SCHEMA} [IF EXISTS] db_name
DROP DATABASE
は、データベース内のすべてのテーブルを削除したあと、そのデータベースを削除します。このステートメントには十分に注意してください。DROP DATABASE
を使用するには、そのデータベースに対する DROP
権限が必要です。DROP SCHEMA
は DROP DATABASE
のシノニムです。
データベースが削除されても、そのデータベースに対するユーザー権限が自動的に削除されることはありません。セクション13.7.1.4「GRANT 構文」を参照してください。
IF EXISTS
は、データベースが存在しない場合にエラーが発生しないようにするために使用されます。
デフォルトデータベースが削除されると、そのデフォルトデータベースは設定解除されます (DATABASE()
関数が NULL
を返します)。
シンボリックリンクされたデータベースに対して DROP DATABASE
を使用した場合は、そのリンクと元のデータベースの両方が削除されます。
DROP DATABASE
は、削除されたテーブルの数を返します。これは、削除された .frm
ファイルの数に対応します。
DROP DATABASE
ステートメントは、MySQL 自体が通常の動作中に作成する可能性のあるファイルとディレクトリを特定のデータベースディレクトリから削除します。
-
次の拡張子を持つすべてのファイル。
.BAK
.DAT
.HSH
.MRG
.MYD
.MYI
.TRG
.TRN
.db
.frm
.ibd
.ndb
.par
db.opt
ファイル (存在する場合)。
今一覧表示されたファイルを MySQL が削除したあとに、このデータベースディレクトリ内にほかのファイルやディレクトリが残っている場合は、そのデータベースディレクトリを削除できません。この場合は、残っているすべてのファイルまたはディレクトリを手動で削除してから、再度 DROP DATABASE
ステートメントを発行する必要があります。
データベースを削除しても、そのデータベース内に作成されたどの TEMPORARY
テーブルも削除されません。TEMPORARY
テーブルは、それらを作成したセッションが終了すると自動的に削除されます。一時テーブルを参照してください。
データベースは mysqladmin でも削除できます。セクション4.5.2「mysqladmin — MySQL サーバーの管理を行うクライアント」を参照してください。