MySQL
MySQL
CREATE TEMPORARY TABLE tmp_top_users (
user_id BIGINT PRIMARY KEY,
total DECIMAL(12,2)
) ENGINE = InnoDB;
INSERT INTO tmp_top_users
SELECT user_id, SUM(total) FROM orders GROUP BY user_id;
DROP TEMPORARY TABLE IF EXISTS tmp_top_users;PostgreSQL
PostgreSQL
CREATE TEMP TABLE tmp_top_users (
user_id bigint PRIMARY KEY,
total numeric(12,2)
) ON COMMIT DROP; -- 事务提交即清理
INSERT INTO tmp_top_users
SELECT user_id, SUM(total) FROM orders GROUP BY user_id;| 生命周期 | MySQL 会话结束清理;PG 支持 ON COMMIT DROP 控制 |
|---|---|
| 可见性 | 仅创建会话可见;不同会话的同名临时表互不干扰 |
| 连接池注意 | 连接复用时长生命周期临时表可能残留,用后显式删除 |