温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Temporary Table支持事务吗

发布时间:2026-09-05 20:15:38 来源:亿速云 阅读:91 作者:小樊 栏目:数据库

结论先行:
临时表(Temporary Table)是否支持事务,取决于具体的数据库系统,但大多数主流关系型数据库MySQL、PostgreSQL、SQL Server、Oracle 等)中的临时表是支持事务的。

下面分常见数据库说明:


1. MySQL(InnoDB 引擎)

  • 支持事务
  • 临时表(CREATE TEMPORARY TABLE)在 InnoDB 下:
    • 支持 BEGIN / COMMIT / ROLLBACK
    • 事务回滚会撤销临时表中的数据修改
  • 注意:
    • 临时表本身在会话结束或连接断开时自动删除
    • 事务只影响数据,不影响表结构(DDL 会隐式提交)
CREATE TEMPORARY TABLE tmp_t (id INT);
START TRANSACTION;
INSERT INTO tmp_t VALUES (1);
ROLLBACK; -- 数据不会存在

2. PostgreSQL

  • 完全支持事务
  • 临时表:
    • 支持事务内的增删改
    • ON COMMIT DELETE ROWS / PRESERVE ROWS 可控制事务结束行为
  • 表结构在事务回滚后仍然存在(除非用 ON COMMIT DROP

3. SQL Server

  • 支持事务
  • 本地临时表(#table):
    • 支持事务
    • 事务回滚会撤销数据修改
  • 全局临时表(##table):
    • 也支持事务,但多会话可见

4. Oracle

  • 支持事务
  • 临时表分为:
    • ON COMMIT DELETE ROWS(事务级)
    • ON COMMIT PRESERVE ROWS(会话级)
  • 数据随事务或会话结束清理,但事务控制完全生效

5. 需要注意的误区

❌ “临时表不受事务控制” —— 这是错误理解
✅ 临时表只是生命周期特殊,事务行为与普通表一致(在支持事务的引擎下)


总结

数据库 临时表支持事务
MySQL (InnoDB)
PostgreSQL
SQL Server
Oracle

如果你指的是某种特定数据库或特定使用场景(如分布式、内存表),可以告诉我,我可以更精确地分析。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI