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


13.1.24 DROP DATABASE ステートメント

DROP {DATABASE | SCHEMA} [IF EXISTS] db_name

DROP DATABASE は、データベース内のすべてのテーブルを削除したあと、そのデータベースを削除します。 このステートメントには十分に注意してください。 DROP DATABASE を使用するには、そのデータベースに対する DROP 権限が必要です。 DROP SCHEMA は DROP DATABASE のシノニムです。

重要

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

IF EXISTS は、データベースが存在しない場合にエラーが発生しないようにするために使用されます。

デフォルトデータベースが削除されると、そのデフォルトデータベースは設定解除されます (DATABASE() 関数が NULL を返します)。

シンボリックリンクされたデータベースに対して DROP DATABASE を使用した場合は、そのリンクと元のデータベースの両方が削除されます。

DROP DATABASE は、削除されたテーブルの数を返します。

DROP DATABASE ステートメントは、通常の操作中に MySQL 自体が作成する可能性のあるファイルおよびディレクトリを、指定されたデータベースディレクトリから削除します。 これには、次のリストに示す拡張子を持つすべてのファイルが含まれます:

  • .BAK

  • .DAT

  • .HSH

  • .MRG

  • .MYD

  • .MYI

  • .cfg

  • .db

  • .ibd

  • .ndb

今一覧表示されたファイルを MySQL が削除したあとに、このデータベースディレクトリ内にほかのファイルやディレクトリが残っている場合は、そのデータベースディレクトリを削除できません。 この場合は、残っているすべてのファイルまたはディレクトリを手動で削除してから、再度 DROP DATABASE ステートメントを発行する必要があります。

データベースを削除しても、そのデータベース内に作成されたどの TEMPORARY テーブルも削除されません。 TEMPORARY テーブルは、それらを作成したセッションが終了すると自動的に削除されます。 セクション13.1.20.2「CREATE TEMPORARY TABLE ステートメント」を参照してください。

データベースは mysqladmin でも削除できます。 セクション4.5.2「mysqladmin — A MySQL Server 管理プログラム」を参照してください。


関連キーワード:  ステートメント, CREATE, DROP, TABLE, データベース, 削除, DATABASE, サブクエリー, FUNCTION, SLAVE