SQL 复制表

本章将学习如何创建表的副本。

完整复制表

有时想创建一个表的精确副本,以便在不影响原始表的情况下,测试或执行某些操作。

下面将介绍完整复制表的步骤。

步骤1: 创建一个空表

根据原始表的定义创建一个空表,除了复制字段,还复制了字段属性和索引:

CREATE TABLE new_table LIKE original_table;

步骤2: 将数据插入表中

用原始表中的数据填充空表:

INSERT new_table SELECT * FROM original_table;

让我们使用MySQL命令行工具演示一下表的完整复制。

假设数据库中有一个employees表,其中包含以下记录:

+--------+--------------+------------+--------+---------+
| emp_id | emp_name     | hire_date  | salary | dept_id |
+--------+--------------+------------+--------+---------+
|      1 | Ethan Hunt   | 2001-05-01 |   5000 |       4 |
|      2 | Tony Montana | 2002-07-15 |   6500 |       1 |
|      3 | Sarah Connor | 2005-10-18 |   8000 |       5 |
|      4 | Rick Deckard | 2007-01-03 |   7200 |       3 |
|      5 | Martin Blank | 2008-06-24 |   5600 |    NULL |
+--------+--------------+------------+--------+---------+

执行以下SQL语句,它将基于现有employees数据库表的定义,创建一个空表employees_clone。

mysql> CREATE TABLE employees_clone LIKE employees;

现在,执行另一条SQL语句,它将employees表中的所有记录插入employees_clone表。

mysql> INSERT employees_clone SELECT * FROM employees;

执行后,您将得到employees_clone表,它是employees表的精确副本。

简单复制

如果您只是想简单复制一个表,无需复制字段属性和索引,可以使用简单的一行语句:

CREATE TABLE new_table SELECT * FROM original_table;

下面的命令创建employees表的简单副本。

mysql> CREATE TABLE employees_dummy SELECT * FROM employees;

使用CREATE TABLE ... SELECT语法简单复制表,只复制表结构和数据。



浙ICP备17015664号-1 浙公网安备 33011002012336号 联系我们 网站地图  
@2019 qikegu.com 版权所有,禁止转载