13.1.29 DROP TABLE Statement
DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name] ... [RESTRICT | CASCADE]
Be careful with this statement! For each table, it removes the table definition and all table data. If the table is partitioned, the statement removes the table definition, all its partitions, all data stored in those partitions, and all partition definitions associated with the dropped table.
Dropping a table also drops any triggers for the table.
DROP TABLE causes an implicit commit, except when used with the
TEMPORARY keyword. See Section 13.3.3, “Statements That Cause an Implicit Commit”.
When a table is dropped, privileges granted specifically for the table are not automatically dropped. They must be dropped manually. See Section 220.127.116.11, “GRANT Statement”.
If any tables named in the argument list do not exist,
DROP TABLE behavior depends on whether the
IF EXISTS clause is given:
IF EXISTS, the statement drops all named tables that do exist, and returns an error indicating which nonexisting tables it was unable to drop.
IF EXISTS, no error occurs for nonexisting tables. The statement drops all named tables that do exist, and generates a
NOTEdiagnostic for each nonexistent table. These notes can be displayed with
SHOW WARNINGS. See Section 18.104.22.168, “SHOW WARNINGS Statement”.
IF EXISTS can also be useful for dropping tables in unusual circumstances under which there is an
.frm file but no table managed by the storage engine. (For example, if an abnormal server exit occurs after removal of the table from the storage engine but before
.frm file removal.)
TEMPORARY keyword has the following effects:
The statement drops only
The statement does not cause an implicit commit.
No access rights are checked. A
TEMPORARYtable is visible only with the session that created it, so no check is necessary.
TEMPORARY keyword is a good way to prevent accidentally dropping non-
CASCADE keywords do nothing. They are permitted to make porting easier from other database systems.