温馨提示×

温馨提示×

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

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

Temporary Table如何创建

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

在数据库中,Temporary Table(临时表) 是用于临时存储数据的表,通常只在当前会话(Session)或当前事务中存在,会话结束或事务提交/回滚后会被自动删除。

下面按常见数据库分别说明如何创建临时表。


一、MySQL 中的临时表

1. 创建会话级临时表

CREATE TEMPORARY TABLE temp_table (
    id INT,
    name VARCHAR(50)
);

特点:

  • 只对当前连接(会话)可见
  • 连接断开后自动删除
  • 不能跨会话访问

2. 使用示例

INSERT INTO temp_table VALUES (1, 'Tom');
SELECT * FROM temp_table;

二、PostgreSQL 中的临时表

1. 创建临时表(默认事务结束或会话结束删除)

CREATE TEMPORARY TABLE temp_table (
    id INT,
    name TEXT
);

或简写:

CREATE TEMP TABLE temp_table (
    id INT,
    name TEXT
);

2. 控制生命周期

-- 事务结束时删除
CREATE TEMP TABLE temp_table (
    id INT
) ON COMMIT DROP;

-- 会话结束时删除(默认)
CREATE TEMP TABLE temp_table (
    id INT
) ON COMMIT PRESERVE ROWS;

三、SQL Server 中的临时表

1. 局部临时表(# 开头)

CREATE TABLE #temp_table (
    id INT,
    name NVARCHAR(50)
);

特点:

  • 只对当前会话可见
  • 会话结束自动删除

2. 全局临时表(## 开头)

CREATE TABLE ##temp_table (
    id INT,
    name NVARCHAR(50)
);

特点:

  • 所有会话可见
  • 创建它的会话结束后删除

四、Oracle 中的临时表

Oracle 的临时表是预先定义结构,数据按会话或事务临时存在。

CREATE GLOBAL TEMPORARY TABLE temp_table (
    id NUMBER,
    name VARCHAR2(50)
)
ON COMMIT DELETE ROWS;

说明:

  • ON COMMIT DELETE ROWS:事务结束清空数据
  • ON COMMIT PRESERVE ROWS:会话结束清空数据

五、通用建议

  • 临时表适合:复杂查询中间结果、批量处理
  • 不建议:长期存储、跨系统共享
  • 注意:不同数据库语法和生命周期不同

如果你告诉我具体使用的是哪种数据库(MySQL / PostgreSQL / SQL Server / Oracle),我可以给你更精确的示例。

向AI问一下细节

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

AI