结论先行:
临时表(Temporary Table)是否支持事务,取决于具体的数据库系统,但大多数主流关系型数据库(MySQL、PostgreSQL、SQL Server、Oracle 等)中的临时表是支持事务的。
下面分常见数据库说明:
CREATE TEMPORARY TABLE)在 InnoDB 下:
BEGIN / COMMIT / ROLLBACKCREATE TEMPORARY TABLE tmp_t (id INT);
START TRANSACTION;
INSERT INTO tmp_t VALUES (1);
ROLLBACK; -- 数据不会存在
ON COMMIT DELETE ROWS / PRESERVE ROWS 可控制事务结束行为ON COMMIT DROP)#table):
##table):
ON COMMIT DELETE ROWS(事务级)ON COMMIT PRESERVE ROWS(会话级)❌ “临时表不受事务控制” —— 这是错误理解
✅ 临时表只是生命周期特殊,事务行为与普通表一致(在支持事务的引擎下)
| 数据库 | 临时表支持事务 |
|---|---|
| MySQL (InnoDB) | ✅ |
| PostgreSQL | ✅ |
| SQL Server | ✅ |
| Oracle | ✅ |
如果你指的是某种特定数据库或特定使用场景(如分布式、内存表),可以告诉我,我可以更精确地分析。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。