温馨提示×

温馨提示×

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

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

临时表生命周期多长

发布时间:2026-09-26 08:42:01 来源:亿速云 阅读:92 作者:小樊 栏目:数据库

“临时表的生命周期”取决于你使用的是哪种数据库,以及临时表的类型。下面按常见数据库分别说明:


一、MySQL

1. 普通临时表(CREATE TEMPORARY TABLE)

  • 生命周期:仅存在于当前会话(连接)
  • 结束时机:
    • 会话断开(连接关闭)
    • 显式执行 DROP TEMPORARY TABLE
  • 特点:
    • 其他会话不可见
    • 会话结束后自动删除

2. 内部临时表(查询中间结果)

  • 由 MySQL 在执行 GROUP BY、DISTINCT、UNION 等时自动创建
  • 生命周期:单条 SQL 执行期间
  • SQL 执行完即释放

二、PostgreSQL

1. 会话级临时表(CREATE TEMPORARY TABLE)

  • 默认生命周期:当前会话
  • 可指定:
    CREATE TEMP TABLE t (...) ON COMMIT PRESERVE ROWS; -- 默认
    CREATE TEMP TABLE t (...) ON COMMIT DELETE ROWS;  -- 事务结束清数据
    CREATE TEMP TABLE t (...) ON COMMIT DROP;          -- 事务结束删表
    
  • 会话结束自动删除

三、Oracle

1. 事务级临时表

CREATE GLOBAL TEMPORARY TABLE t (...)
ON COMMIT DELETE ROWS;
  • 生命周期:事务内
  • 提交/回滚后数据清空

2. 会话级临时表

CREATE GLOBAL TEMPORARY TABLE t (...)
ON COMMIT PRESERVE ROWS;
  • 生命周期:当前会话
  • 会话结束数据清空

Oracle 临时表结构是全局的,数据是会话/事务隔离的


四、SQL Server

1. 本地临时表(#table)

  • 生命周期:当前连接(会话)
  • 当前批处理/连接结束自动删除

2. 全局临时表(##table)

  • 生命周期:
    • 创建它的会话结束
    • 且没有其他会话在引用它
  • 才会被删除

五、总结对照表

数据库 临时表类型 生命周期
MySQL TEMPORARY TABLE 会话级
MySQL 内部临时表 单条 SQL
PG TEMP TABLE 会话 / 事务(可配)
Oracle GLOBAL TEMP 事务 / 会话
SQL Server #table 会话级
SQL Server ##table 最后一个引用会话结束

如果你能说明具体数据库 + 使用场景(如存储过程、批处理、并发查询),我可以给你更精确的建议。

向AI问一下细节

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

AI
助
手