温馨提示×

温馨提示×

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

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

Temporary Table 怎么备份

发布时间:2026-09-26 07:56:00 来源:亿速云 阅读:83 作者:小樊 栏目:数据库

在数据库里,“Temporary Table(临时表)”的备份方式和普通表不太一样,主要取决于临时表的类型和你用的数据库。下面按常见数据库说明。


一、MySQL

1️⃣ 会话级临时表(最常见)

CREATE TEMPORARY TABLE tmp_a (id INT);

特点

  • 只在当前会话可见
  • 会话断开自动删除
  • mysqldump 默认不会备份临时表

✅ 备份方式

手动复制到普通表

CREATE TABLE bak_tmp_a AS
SELECT * FROM tmp_a;

然后:

mysqldump -u user -p db bak_tmp_a > bak.sql

二、SQL Server

1️⃣ 本地临时表 #table

SELECT * INTO #tmp FROM t;
  • 仅当前会话
  • 无法跨会话备份

✅ 备份方式:

SELECT * INTO dbo.bak_tmp FROM #tmp;

2️⃣ 全局临时表 ##table

SELECT * INTO ##tmp FROM t;
  • 所有会话可见,连接全断才消失

✅ 同样复制到普通表再备份


三、PostgreSQL

CREATE TEMP TABLE tmp_a (id INT);
  • 会话级
  • pg_dump 不备份临时表

✅ 备份方式:

CREATE TABLE bak_tmp_a AS TABLE tmp_a;

四、Oracle

Oracle 的临时表是结构永久、数据临时

CREATE GLOBAL TEMPORARY TABLE tmp_a (id NUMBER)
ON COMMIT DELETE ROWS;

✅ 结构可备份:

exp / expdp

❌ 数据通常不备份(提交即清)


五、通用建议(最佳实践)

✅ 临时表不要当长期存储用 ✅ 需要备份的数据:

  • 先 INSERT INTO 普通表 SELECT * FROM 临时表
  • 再走正常备份流程

✅ 自动化示例(MySQL):

CREATE TABLE IF NOT EXISTS bak_tmp_a LIKE tmp_a;
INSERT INTO bak_tmp_a SELECT * FROM tmp_a;

六、如果你愿意

可以告诉我:

  • 用的是哪种数据库(MySQL / SQL Server / PG / Oracle)
  • 临时表是会话级还是全局
  • 想“自动备份”还是“手动导出”

我可以给你更精确的脚本或定时方案。

向AI问一下细节

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

AI
助
手