13.1.22 DROP DATABASE 语句
DROP {DATABASE | SCHEMA} [IF EXISTS] db_name
DROP DATABASE删除数据库中的所有 table 并删除数据库。请非常小心此声明!要使用DROP DATABASE,您需要对数据库具有DROP特权。 DROP SCHEMA是DROP 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语句。
删除数据库不会删除该数据库中创建的任何TEMPORARY
table。 TEMPORARY
table 在创建它们的会话结束时自动删除。参见第 13.1.18.2 节“ CREATE TEMPORARY TABLE 语句”。
您也可以使用mysqladmin删除数据库。参见第 4.5.2 节“ mysqladmin-MySQL 服务器 Management 程序”。