13.1.22 DROP DATABASE 语句

DROP {DATABASE | SCHEMA} [IF EXISTS] db_name

DROP DATABASE删除数据库中的所有 table 并删除数据库。请非常小心此声明!要使用DROP DATABASE,您需要对数据库具有DROP特权。 DROP SCHEMADROP DATABASE的同义词。

Important

删除数据库后,不会自动删除专门为该数据库授予的特权。必须手动删除它们。参见第 13.7.1.4 节“ GRANT 语句”

IF EXISTS用于防止数据库不存在时发生错误。

如果删除了默认数据库,则未设置默认数据库(DATABASE()函数返回NULL)。

如果在符号链接的数据库上使用DROP DATABASE,则链接和原始数据库都将被删除。

DROP DATABASE返回已删除的 table 数。这对应于已删除的.frm个文件的数量。

DROP DATABASE语句从给定的数据库目录中删除 MySQL 本身在正常操作期间可能创建的那些文件和目录:

  • 所有具有以下 extensions 的文件:

  • .BAK

    • .DAT

    • .HSH

    • .MRG

    • .MYD

    • .MYI

    • .TRG

    • .TRN

    • .cfg

    • .db

    • .frm

    • .ibd

    • .ndb

    • .par

  • db.opt文件(如果存在)。

如果在 MySQL 删除刚列出的文件或目录后,其他文件或目录仍保留在数据库目录中,则无法删除数据库目录。在这种情况下,您必须手动删除所有剩余的文件或目录,然后再次发出DROP DATABASE语句。

删除数据库不会删除该数据库中创建的任何TEMPORARYtable。 TEMPORARYtable 在创建它们的会话结束时自动删除。参见第 13.1.18.2 节“ CREATE TEMPORARY TABLE 语句”

您也可以使用mysqladmin删除数据库。参见第 4.5.2 节“ mysqladmin-MySQL 服务器 Management 程序”