结论先说:
临时表本身“是否支持事务”,取决于你用的数据库类型,以及临时表的创建方式。不能一概而论。
下面按常见数据库分别说明:
✅ 支持事务
CREATE TEMPORARY TABLE 创建的临时表BEGIN / COMMIT / ROLLBACK)⚠️ 注意:
示例:
CREATE TEMPORARY TABLE tmp_user (
id INT,
name VARCHAR(50)
) ENGINE=InnoDB;
START TRANSACTION;
INSERT INTO tmp_user VALUES (1, 'Tom');
ROLLBACK; -- 数据不会存在
✅ 支持事务
ON COMMIT PRESERVE ROWS(默认,事务结束保留数据)ON COMMIT DELETE ROWS(事务提交后清空)ON COMMIT DROP(事务结束删表)示例:
CREATE TEMPORARY TABLE tmp_user (
id INT,
name TEXT
) ON COMMIT PRESERVE ROWS;
✅ 支持事务
#temp 本地临时表##temp 全局临时表注意:
⚠️ 情况特殊
两种类型:
ON COMMIT DELETE ROWS(事务级)ON COMMIT PRESERVE ROWS(会话级)示例:
CREATE GLOBAL TEMPORARY TABLE tmp_user (
id NUMBER,
name VARCHAR2(50)
) ON COMMIT DELETE ROWS;
| 数据库 | 临时表支持事务 | 说明 |
|---|---|---|
| MySQL (InnoDB) | ✅ | 推荐 |
| PostgreSQL | ✅ | 灵活 |
| SQL Server | ✅ | 原生支持 |
| Oracle | ✅ | 表结构永久,数据临时 |
如果你愿意,可以告诉我:
我可以给你更具体的用法建议。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。