1.简介:
用于临时存储大量数据子集的查询结果,经行临时存储以便下一步处理;
相对于执行若干次查询操作每次经行SQL处理,使用临时表只用执行一次查询然后集中处理;
-
临时表的生命周期为一次SQL的执行周期,即若执行一次
mysql -u xxx -p -D xxx <xxx.sql
并在其中声明一张临时表,在执行结束后临时表会被自动DROP;
2.特殊性:
临时表无法建立触发器;
-
同一条query语句中不可对临时表进行重复查询,否则会报错:
ERROR 1137: Can't reopen table: 'xxx'
临时表无法被show tables;语句查询到,但是desc可以;
理论上临时表在一次SQL执行后会被自动回收,但是可以用drop保证其被确实执行;
3.使用:
-
创建临时表:
CREATE TEMPORARY TABLE tmp_theme_user ( Theme_id char(36) NOT NULL DEFAULT '', User_id char(36) NOT NULL DEFAULT '' );
-
回收临时表:
DROP TABLE IF EXISTS tmp_theme_user;