1.簡介:
用于臨時存儲大量數(shù)據(jù)子集的查詢結(jié)果,經(jīng)行臨時存儲以便下一步處理;
相對于執(zhí)行若干次查詢操作每次經(jīng)行SQL處理,使用臨時表只用執(zhí)行一次查詢?nèi)缓蠹刑幚?
-
臨時表的生命周期為一次SQL的執(zhí)行周期,即若執(zhí)行一次
mysql -u xxx -p -D xxx <xxx.sql
并在其中聲明一張臨時表,在執(zhí)行結(jié)束后臨時表會被自動DROP;
2.特殊性:
臨時表無法建立觸發(fā)器;
-
同一條query語句中不可對臨時表進行重復查詢,否則會報錯:
ERROR 1137: Can't reopen table: 'xxx'
臨時表無法被show tables;語句查詢到,但是desc可以;
理論上臨時表在一次SQL執(zhí)行后會被自動回收,但是可以用drop保證其被確實執(zhí)行;
3.使用:
-
創(chuàng)建臨時表:
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;