在数据库中,临时表(Temporary Table) 是一种只在当前会话(或当前事务)中存在、会话结束或事务结束后自动销毁的表,常用于复杂查询的中间结果存储、分批处理数据等。
下面按常见数据库给你讲清楚:是什么、怎么建、怎么用、注意事项。
CREATE TEMPORARY TABLE temp_user (
id INT,
name VARCHAR(50)
);
INSERT INTO temp_user VALUES (1, '张三');
SELECT * FROM temp_user;
CREATE TEMPORARY TABLE temp_result
SELECT user_id, COUNT(*) AS cnt
FROM orders
GROUP BY user_id;
SELECT * FROM temp_result
WHERE cnt > 10;
CREATE TABLE #temp (
id INT,
name VARCHAR(50)
);
CREATE TABLE ##temp (
id INT
);
SELECT * INTO #temp
FROM employees
WHERE dept_id = 10;
SELECT * FROM #temp;
Oracle 临时表是表结构永久存在,数据临时存在。
CREATE GLOBAL TEMPORARY TABLE temp_emp (
id NUMBER,
name VARCHAR2(50)
)
ON COMMIT DELETE ROWS; -- 事务结束清空
或:
ON COMMIT PRESERVE ROWS; -- 会话结束清空
INSERT INTO temp_emp VALUES (1, '李四');
SELECT * FROM temp_emp;
CREATE TEMPORARY TABLE temp_order (
id INT,
amount NUMERIC
);
ON COMMIT DROPCREATE TEMP TABLE t1 AS
SELECT * FROM orders LIMIT 100;
✅ 适合:
❌ 不适合:
如果你告诉我用的是哪种数据库(MySQL / Oracle / SQL Server / PG),我可以直接给你针对你场景的写法示例。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。