使用 Temporary Table(临时表) 通常是为了在数据库操作过程中,提供一个临时存储、计算和整理数据的中间空间。它只在当前会话(Session)或事务(Transaction)中存在,会话结束或显式删除后就会自动消失。
下面从为什么用和典型场景两方面说明:
当查询非常复杂(多表 JOIN、聚合、子查询嵌套)时,可以:
好处:逻辑清晰、易于调试、性能可控。
CREATE TEMPORARY TABLE tmp_sales AS
SELECT user_id, SUM(amount) AS total
FROM orders
GROUP BY user_id;
SELECT * FROM tmp_sales WHERE total > 1000;
CREATE TEMPORARY TABLE tmp_user (
id INT,
name VARCHAR(50),
INDEX(idx_name)
);
在数据清洗、转换、报表生成中非常常见:
将复杂计算放在临时表中完成,减少对原表的长时间锁定,降低并发冲突。
✅ 会话级存在
✅ 自动清理
✅ 不对外可见
✅ 可加索引
❌ 不能跨会话共享
如果你有具体数据库(MySQL / PostgreSQL / SQL Server / Oracle)或使用场景,我可以给你更针对性的示例。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。