数据库中如何通过创建新表来备份操作示例代码

 更新时间:2025年07月24日 10:58:24   作者:糖醋咸鱼一条  
数据库备份是指在特定时间点保存数据库中数据的过程,备份数据通常存储在不同的物理介质上,比如硬盘、磁带或云端存储设备,以防止数据丢失或损坏,这篇文章主要介绍了数据库中如何通过创建新表来备份操作的相关资料,需要的朋友可以参考下

前言

数据库表备份一直是一个很常规的操作,每个人都有每个人的操作方法,这篇文章主要记录了MySQLPostgreSQL两种数据库中通过创建新表来备份的操作。

一、MySQL数据库中备份表

1、复制表结构 + 数据

-- 创建新表并复制数据
CREATE TABLE 备份表名 AS SELECT * FROM 原表名;


2、仅复制表结构

-- 只复制结构(不包含数据)
CREATE TABLE 备份表名 LIKE 原表名;
-- 再插入数据(可选)
INSERT INTO 备份表名 SELECT * FROM 原表名;

字段含义:

  • CREATE TABLE 备份表名 AS

    • CREATE TABLE:创建新表的 SQL 关键字。

    • 备份表名:要生成的新表名称(例如:orders_backup)。

    • AS:表示新表的内容来自后续查询结果。

  • SELECT * FROM 原表名

    • SELECT *:选择原表的所有字段(* 是通配符)。

    • FROM 原表名:指定要复制的原表(例如:orders)。

二、PostgreSQL数据库中备份表

1、复制表结构 + 数据

CREATE TABLE 备份表名 AS SELECT * FROM 原表名;


2、仅复制表结构(无数据)

CREATE TABLE 备份表名 AS SELECT * FROM 原表名
LIMIT 0; -- 仅复制结构

字段含义

  • LIMIT 0

    • LIMIT:限制查询返回的记录数量。

    • 0:表示不返回任何数据,因此新表只有结构,没有数据。

三、如果需要完全复制表(包括索引、约束等),则可以通过下面方式处理:

  • MySQLCREATE TABLE 备份表名 LIKE 原表名; + INSERT INTO 备份表名 SELECT * FROM 原表名;

  • PostgreSQLCREATE TABLE 备份表名 (LIKE 原表名 INCLUDING ALL);

1. MySQL:  CREATE TABLE ... LIKE + INSERT INTO ... SELECT

-- 步骤1:复制表结构(包括约束和索引)
CREATE TABLE 备份表名 LIKE 原表名;

-- 步骤2:复制数据
INSERT INTO 备份表名 SELECT * FROM 原表名;

字段含义

  • CREATE TABLE 备份表名 LIKE 原表名

    • CREATE TABLE:创建新表的 SQL 关键字。

    • 备份表名:新表的名称(例如 orders_backup)。

    • LIKE 原表名:基于原表的结构创建新表,复制字段定义、索引、主键、外键、自增属性等,但不复制数据

  • INSERT INTO 备份表名 SELECT * FROM 原表名

    • INSERT INTO:向表中插入数据的 SQL 关键字。

    • SELECT * FROM 原表名:从原表查询所有数据并插入到新表中。

    • 功能:将原表的数据完整复制到新表。

优点

  • 完全复制结构:包括索引、主键、自增字段等。

  • 一致性高:适合需要保留完整表定义的场景。

缺点

  • 分步操作:需要先创建结构,再插入数据。

  • 锁表风险:插入大量数据时可能影响原表性能。

2. PostgreSQL:  CREATE TABLE ... (LIKE ... INCLUDING ALL)

-- 1.单步复制表结构(包括索引、约束等)
CREATE TABLE 备份表名 (LIKE 原表名 INCLUDING ALL);

-- 2:复制数据
INSERT INTO 备份表名 SELECT * FROM 原表名;

字段含义

  • CREATE TABLE 备份表名

    • 创建新表的标准 SQL 语法。

  • (LIKE 原表名 INCLUDING ALL)

    • LIKE 原表名:基于原表的结构创建新表。

    • INCLUDING ALL:PostgreSQL 扩展语法,表示复制原表的所有属性,包括:

      • 字段定义(名称、类型、默认值)

      • 约束(主键、外键、唯一约束)

      • 索引

      • 注释

      • 存储参数(如表空间、分区规则)

      • 其他对象(如触发器、规则)

    • 若省略 INCLUDING ALL,默认仅复制字段定义(无约束或索引)。

优点

  • 单步完成:结构和扩展属性一并复制。

  • 高度兼容:适合需要完全复制的生产环境。

缺点

  • 仅限 PostgreSQL:其他数据库不支持 INCLUDING ALL 语法。

  • 不复制数据:需额外执行 INSERT INTO 复制数据。

注意事项

  1. 权限要求

    • 执行 CREATE TABLE 需要数据库的 CREATE 权限。

    • 执行 SELECT 需要原表的读取权限。

  2. 数据一致性

    • 若原表在复制过程中被修改,备份表数据可能与原表不一致。建议在事务中操作或锁定原表。

  3. 自增字段(MySQL)

    • LIKE 会复制自增属性,但初始值可能与原表不同。需手动重置自增值:

      ALTER TABLE 备份表名 AUTO_INCREMENT = 原表当前自增值;
  4. PostgreSQL 扩展选项

总结 

到此这篇关于数据库中如何通过创建新表来备份操作的文章就介绍到这了,更多相关数据库创建新表备份内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • MySQL同步ES的主流方案汇总

    MySQL同步ES的主流方案汇总

    在日常开发中,我们经常遇到这样的场景:MySQL作为核心数据库存储业务数据,而Elasticsearch(ES)则承担着全文检索和数据分析的重任,如何让MySQL和ES保持数据一致性,成了每个后端工程师都绕不开的问题,所以本文给大家介绍了MySQL同步ES的5种主流方案
    2026-03-03
  • Window下如何恢复被删除的Mysql8.0.17 Root账户及密码

    Window下如何恢复被删除的Mysql8.0.17 Root账户及密码

    这篇文章主要介绍了Window下如何恢复被删除的Mysql8.0.17 Root账户及密码,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-02-02
  • mysql 8.0.22 安装配置方法图文教程

    mysql 8.0.22 安装配置方法图文教程

    这篇文章主要为大家详细介绍了mysql 8.0.22 安装配置方法图文教程,文中安装步骤介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-10-10
  • 计算机二级考试MySQL常考点 8种MySQL数据库设计优化方法

    计算机二级考试MySQL常考点 8种MySQL数据库设计优化方法

    这篇文章主要为大家详细介绍了计算机二级考试MySQL常考点,详细介绍8种MySQL数据库设计优化方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-08-08
  • MySQL 数据库常用命令 简单超级实用版

    MySQL 数据库常用命令 简单超级实用版

    MySQL 数据库常用命令,都是一些比较基础的东西,更多的命令可以查看相关文章里面的文字。
    2010-07-07
  • windows 下忘记mysql root密码的更改方法

    windows 下忘记mysql root密码的更改方法

    mysql数据库忘记了root密码是件很痛苦的事,本文介绍如何解决windows环境下mysql服务器忘记root密码的解决方法,需要的朋友可以参考下
    2016-10-10
  • 在linux服务器上配置mysql并开放3306端口的操作步骤

    在linux服务器上配置mysql并开放3306端口的操作步骤

    这篇文章主要介绍了在linux服务器上配置mysql并开放3306端口,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-09-09
  • linux忘记mysql密码处理方法

    linux忘记mysql密码处理方法

    这篇文章主要为大家介绍下linux忘记mysql密码处理方法,需要的朋友可以参考下。
    2011-08-08
  • MySQL笔记之数据类型详解

    MySQL笔记之数据类型详解

    本篇文章对mysql数据类型进行了详细的介绍,需要的朋友参考下
    2013-05-05
  • MySQL复合索引的深入探究

    MySQL复合索引的深入探究

    这篇文章主要给大家介绍了关于MySQL复合索引的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02

最新评论