Documentation Home
MySQL 8.4 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 39.8Mb
PDF (A4) - 39.9Mb
Man Pages (TGZ) - 257.9Kb
Man Pages (Zip) - 364.9Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 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.41节,“SHOW WARNINGS 语句”

IF EXISTS也可以在存储引擎中有表记录但实际上没有管理的异常情况下使用(例如,服务器异常退出后删除了表,但数据字典记录还存在)。

以下是TEMPORARY关键字的效果:

  • 语句只删除TEMPORARY表。

  • 语句不隐式提交事务。

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

包括TEMPORARY关键字可以防止意外删除非TEMPORARY表。

RESTRICTCASCADE关键字无效。它们是为了方便从其他数据库系统porting而保留的。

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