CREATE TEMPORARY TABLE tmp_table (
name VARCHAR(10) NOT NULL,
passwd CHAR(6) NOT NULL
);
-- 或指定引擎+查詢創建
CREATE TEMPORARY TABLE IF NOT EXISTS sp_output_tmp ENGINE=MEMORY
SELECT ... FROM ... WHERE ID = current_id;
CREATE TEMPORARY TABLES 權限SELECT * FROM temp_table, temp_table AS t2;
-- ERROR 1137: Can't reopen table: 'temp_table'
存儲函數/過程中不同別名/語句多次引用同樣報錯。官方 Bug #10327
ALTER TABLE ... RENAME 代替)CREATE TEMPORARY TABLE tmp2 SELECT * FROM tmp1;
-- 之後用 tmp1、tmp2 分別引用
CREATE TABLE `tmp_${session_id}_${random}` ...;
-- 使用後手動 DROP
WITH tmp AS (SELECT ... FROM ...)
SELECT * FROM tmp t1 JOIN tmp t2 ON ...;
DROP TEMPORARY TABLE IF EXISTS sp_output_tmp;
顯式清理避免連接池復用時殘留數據干擾。