13.1.29 DROP TABLE 语句

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

DROP TABLE删除一个或多个 table。每个 table 都必须具有DROP特权。

请谨慎此声明!对于每个 table,它将删除 table 定义和所有 table 数据。如果 table 已分区,则该语句将删除 table 定义,其所有分区,存储在这些分区中的所有数据以及与删除的 table 关联的所有分区定义。

删除 table 也会删除该 table 的所有触发器。

DROP TABLE导致隐式提交,除非与TEMPORARY关键字一起使用。参见第 13.3.3 节“导致隐式提交的声明”

Important

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

如果在参数列 table 中命名的 table 不存在,则DROP TABLE的行为取决于是否提供了IF EXISTS子句:

IF EXISTS在异常情况下删除 table 很有用,在这种情况下,存在.frm文件但存储引擎无法 Managementtable。 (例如,如果从存储引擎中删除 table 之后但在.frm文件删除之前发生了异常的服务器退出.)

TEMPORARY关键字具有以下效果:

包含TEMPORARY关键字是防止意外删除非TEMPORARYtable 的好方法。

RESTRICTCASCADE关键字无效。允许它们使从其他数据库系统的移植更加容易。

并非所有innodb_force_recovery设置都支持DROP TABLE。参见第 14.22.2 节“强制 InnoDB 恢复”

首页