Documentation Home
MySQL 8.3 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 40.8Mb
PDF (A4) - 40.9Mb
Man Pages (TGZ) - 294.0Kb
Man Pages (Zip) - 409.0Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb
Excerpts from this Manual

MySQL 8.3 Reference Manual  /  ...  /  DROP TABLE Statement

15.1.32 删除表语句

DROP [TEMPORARY] TABLE [IF EXISTS]
    tbl_name [, tbl_name] ...
    [RESTRICT | CASCADE]

DROP TABLE 删除一个或多个表。你必须拥有每个表的 DROP 权限。

小心 使用这个语句!对于每个表,它删除表定义和所有表数据。如果表是分区的,语句删除表定义、所有分区、所有存储在这些分区中的数据和与删除的表关联的所有分区定义。

删除表也删除该表的所有触发器。

DROP TABLE 导致隐式提交,除非使用 TEMPORARY 关键字。见 第 15.3.3 节,“隐式提交的语句”

Important

当表被删除时,特定于该表的权限不会自动删除。它们必须手动删除。见 第 15.7.1.6 节,“GRANT 语句”

如果参数列表中的任何表不存在,DROP TABLE 的行为取决于是否给出了 IF EXISTS 子句:

  • 没有 IF EXISTS,语句将失败,指出它无法删除的非存在表,并且不进行任何更改。

  • 使用 IF EXISTS,对于不存在的表不发生错误。语句删除所有存在的表,并生成一个 NOTE 诊断信息,每个不存在的表。这些信息可以使用 SHOW WARNINGS 显示。见 第 15.7.7.44 节,“SHOW WARNINGS 语句”

IF EXISTS 也可以在特殊情况下用于删除表,在这种情况下,数据字典中存在条目,但存储引擎中没有表。(例如,如果服务器异常退出后,存储引擎中删除了表,但数据字典中仍然存在该表的条目。)

The TEMPORARY 关键字具有以下效果:

  • 该语句仅删除 TEMPORARY 表。

  • 该语句不导致隐式提交。

  • 不检查访问权限。TEMPORARY 表只能在创建它的会话中可见,因此不需要检查。

包括 TEMPORARY 关键字是一个不错的方法,以防止意外删除非 TEMPORARY 表。

The RESTRICTCASCADE 关键字不起作用。它们被允许,以便从其他数据库系统中移植。

DROP TABLE 不支持所有 innodb_force_recovery 设置。请参阅 第 17.20.3 节,“强制 InnoDB 恢复”