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

 更新时间: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中的MVCC

    深入理解Mysql中的MVCC

    这篇文章主要介绍了深入理解Mysql中的MVCC,同样的sql查询语句在一个事务 里多次执行查询结果相同,就算其它事务对数据有修改也不会影响当前事务sql语句的查询结果, 这个隔离性就是靠MVCC机制来保证的,需要的朋友可以参考下
    2023-09-09
  • 详解MySQL主从复制读写分离搭建

    详解MySQL主从复制读写分离搭建

    这篇文章主要介绍了详解MySQL主从复制读写分离搭建的相关资料,需要的朋友可以参考下
    2017-06-06
  • mysql自定义函数原理与用法实例分析

    mysql自定义函数原理与用法实例分析

    这篇文章主要介绍了mysql自定义函数,结合实例形式分析了mysql自定义函数基本功能、原理、用法及操作注意事项,需要的朋友可以参考下
    2020-04-04
  • 基于SQL中SET与SELECT赋值的区别详解

    基于SQL中SET与SELECT赋值的区别详解

    本篇文章是对SQL中SET与SELECT赋值的区别进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • MySQL数据库中的UPDATE(更新数据)详解

    MySQL数据库中的UPDATE(更新数据)详解

    这篇文章主要详细介绍了MySQL的UPDATE语句,包括其基本语法、高级用法、性能优化策略以及注意事项,通过示例和实战,帮助读者更好地理解和应用这一重要的SQL命令,需要的朋友可以参考下
    2024-12-12
  • Windows下mysql 8.0.29 winx64安装配置方法图文教程

    Windows下mysql 8.0.29 winx64安装配置方法图文教程

    这篇文章主要为大家详细介绍了Windows下mysql 8.0.29 winx64安装配置方法图文教程,文中安装步骤介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-07-07
  • mysql中update按照多重条件进行更新处理的方案

    mysql中update按照多重条件进行更新处理的方案

    更新数据是使用数据库时最重要的任务之一,下面这篇文章主要给大家介绍了关于mysql中update按照多重条件进行更新处理的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-09-09
  • 如何恢复Mysql数据库的详细介绍

    如何恢复Mysql数据库的详细介绍

    这里说的MySql恢复数据库,是指没有通过正常备份的情况下,通过Mysql保存的数据文件如何恢复数据库
    2013-09-09
  • MySQL使用IF函数动态执行where条件的方法

    MySQL使用IF函数动态执行where条件的方法

    这篇文章主要介绍了MySQL使用IF函数来动态执行where条件,详细介绍了IF函数在WHERE条件中的使用,MySQL的IF()函数,接受三个表达式,如果第一个表达式为true,而不是零且不为NULL,它将返回第二个表达式,需要的朋友可以参考下
    2022-09-09
  • Tableau连接mysql数据库的实现步骤

    Tableau连接mysql数据库的实现步骤

    本文主要介绍了Tableau连接mysql数据库的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-01-01

最新评论