DROP TEMPORARY TABLE删除一张或多张临时表。您必须拥有每张临时表的权限。
小心这个声明!对于每个表,它会删除表定义和所有表数据。如果表已分区,则该语句将删除表定义、其所有分区、这些分区中存储的所有数据以及与删除的表关联的所有分区定义。
![]() | DROP TEMPORARY TABLE只能删除临时表,不能删除正常数据表,如果想删除数据表请使用 DROP TANLE 语句。 |
DROP TEMPORARY TABLE [IF EXISTS] <临时表名1>[,...]<临时表名n>
[ ]中的内容是可选的,…代表可有多个,<>是中文解释,逗号','代表分隔号。语法说明:
<临时表名>:临时表的名称,可有多个,至少一个。
[IF EXISTS]:如果没有IF EXISTS,删除一个不存在的表,返回一个错误,指示它无法删除哪些不存在的表。加IF EXISTS则不会报错。
a是正常数据表,通过a表复制一个b和c的临时表,再删除
--复制两个临时表-- mysql> CREATE TEMPORARY TABLE b like a; Query OK, 0 rows affected (0.05 sec) mysql> CREATE TEMPORARY TABLE c like a; Query OK, 0 rows affected (0.01 sec) --查询b和c是否成功创建,显示成功为空表-- mysql> select * from b; Empty set (0.04 sec) mysql> select * from c; Empty set (0.00 sec) --删除b和c临时表-- mysql> DROP TEMPORARY TABLE IF EXISTS b,c; Query OK, 0 rows affected (0.01 sec) --通过查询检查是否删除成功-- mysql> select * from c; ERROR 1146 (42S02): Table 'test.c' doesn't exist
DROP TEMPORARY TABLE不能删除正常数据表a
mysql> DROP TEMPORARY TABLE IF EXISTS a; Query OK, 0 rows affected, 1 warning (0.00 sec)
DROP TABLE和DROP TEMPORARY TABLE可以删除临时表b
--复制一个临时表b-- mysql> CREATE TEMPORARY TABLE b like a; Query OK, 0 rows affected (0.01 sec) --查询创建成功-- mysql> select * from b; Empty set (0.00 sec) --通过DROP TABLE语句删除临时表b-- mysql> DROP TABLE b; Query OK, 0 rows affected (0.00 sec) --查询删除成功-- mysql> select * from b; ERROR 1146 (42S02): Table 'test.b' doesn't exist