温馨提示×

温馨提示×

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

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

临时表能跨会话吗

发布时间:2026-10-17 01:16:05 来源:亿速云 阅读:92 作者:小樊 栏目:数据库

一般来说,临时表不能跨会话(session),但要看具体数据库类型和临时表的种类。下面按常见数据库说明:

1. MySQL

  • 普通临时表(CREATE TEMPORARY TABLE)
    • 仅当前会话可见
    • 其他会话看不到,也访问不了
    • 会话结束(断开连接)时自动删除
  • 总结:❌ 不能跨会话

2. PostgreSQL

  • 临时表(CREATE TEMPORARY TABLE)
    • 默认只对创建它的会话可见
    • 其他会话不可见、不可访问
    • 会话结束时自动删除
  • 总结:❌ 不能跨会话

3. Oracle

  • 临时表(GLOBAL TEMPORARY TABLE)
    • 表结构是全局的(所有会话可见定义)
    • 但数据是会话私有的
      • ON COMMIT PRESERVE ROWS:数据仅当前会话可见
      • ON COMMIT DELETE ROWS:事务结束清空
    • 其他会话看不到你的数据
  • 总结:
    • 表结构可“跨会话存在”
    • 数据 ❌ 不能跨会话

4. SQL Server

  • 局部临时表(#table)
    • 仅当前会话(及子会话/调用链)可见
    • ❌ 不能跨会话
  • 全局临时表(##table)
    • 所有会话可见
    • 但创建会话断开后,表会被删除
    • ✅ 理论上可跨会话(短暂存在)
  • 总结:
    • #:不能跨会话
    • ##:可跨会话,但不持久

一句话总结

绝大多数数据库的临时表都是“会话私有”的,不能跨会话共享数据。
如果你需要多会话共享数据,应使用普通表或物化表 / 中间表。

如果你能说明用的是哪种数据库、想解决什么场景(如并发、批处理、缓存),我可以给你更合适的方案。

向AI问一下细节

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

AI
助
手