mysql用工具法复制表_MySQL复制表方法,你知道几种?

在本教程中,您将学习如何使用 CREATE TABLE 和 SELECT 语句在同一数据库中或从一个表复制到同一个数据库中另一个表,这种方法可以用来备份数据库中的表。

MySQL复制表到新表

将数据从现有表复制到新表是非常有用的,在某些情况下,例如:备份数据和复制生产数据用于开发和测试。

要将数据从表复制到新表,请使用CREATE TABLE和SELECT语句,如下所示:

CREATE TABLE new_table

SELECT col, col2, col3

FROM

existing_table;

首先,MySQL使用CREATE TABLE语句中指定新创建表的名称。 新表的结构由SELECT语句选择的结果集定义。 然后,MySQL将来自SELECT语句的数据填充到新表中。

要将部分数据从现有表复制到新表,可在SELECT语句中使用WHERE子句指定条件限制,如下所示:

CREATE TABLE new_table

SELECT col1, col2, col3

FROM

existing_tableWHERE

conditions;

在创建之前检查要创建的表是否已经存在是非常重要的。 为此,在CREATE TABLE语句中使用IF NOT EXIST子句。 将数据从现有表复制到新表的完整命令如下:

CREATE TABLE new_table

SELECT col1, col2, col3

FROM

existing_tableWHERE

conditions;

注意上面的语句只是复制表及其数据。 它不复制与表相关联的其他数据库对象,例如:索引,主键约束,外键约束,触发器等。

要复制一个表以及表的所有从属对象数据,请使用以下语句:

CREATE TABLE IF NOT EXISTS new_table LIKE existing_table;

INSERT new_table

SELECT * FROM existing_table;

我们需要执行两个语句。第一个语句通过复制现有表来创建一个新表new_table。 第二个语句将现有表中的数据插入到new_table中。

MySQL复制表示例

以下语句将数据从office表复制到studymysql数据库中的一个名称为offices_bk的新表。

CREATE TABLE IF NOT EXISTS studymysql.office_bk

SELECT * FROM

studymysql.office;

我们可以通过查询office_bk表中的数据来验证复制的结果,如下所示:

SELECT

*FROM

studymysql.office_bk;

执行上的查询语句,结果如下所示 -

37af0ab2192777e9f9812203a293c6d4.png

如果只想复制 广东 省办事处时,可以在 SELECT 语句的 WHERE 子句中指定条件,如下所示:

CREATE TABLE IF NOT EXISTS office_gdSELECT *

FROM

studymysql.officeWHERE

province = '广东'

以下语句从office_gd表中查询获取所有数据。

SELECT

*FROM

office_gd;

执行上的查询语句,结果如下所示 -

42e769a1e610ad992e96d186ba050c40.png

假设,我们不仅要复制数据,而且还要复制与office表关联的所有数据库对象,那么可以使用以下语句:

CREATE TABLE office_dup LIKE office;

INSERT office_dup

SELECT * FROM studymysql.office;

MySQL复制表到另一个数据库

有时,可能想要将表复制到其他数据库中。 在这种情况下,可使用以下语句:

CREATE TABLE destination_db.new_table

LIKE source_db.existing_table;INSERT destination_db.new_table

SELECT *

FROM source_db.existing_table;

第一个语句通过从源数据库(source_db)复制现有表(现有表)到目标数据库(destination_db)中创建一个新表new_table。

第二个语句将数据从源数据库(source_db)中的现有表复制到目标数据库(destination_db)中的新表。

让我们看看下面的例子。

首先,我们使用以下语句创建一个名称为test的数据库(已存在的话,就不用再创建了):

CREATE DATABASE IF NOT EXISTS test;

第二步,我们通过将studymysql数据库中的office表复制其结构到test数据库中并创建一个office表。

CREATE TABLE test.office LIKE studymysql.office;

第三步,我们将数据从studymysql.office表复制到test.office表中。

INSERT test.office

SELECT *

FROM studymysql.office;

让我们查询验证test.office表中的数据。执行以下查询语句并查看结果 -

SELECT

*FROM

test.office;

8cbbf341cfab0bf4f50d7ccfb7a7cc0d.png

在本教程中,我们向您展示了在数据库中如何复制表以及从一个数据库中复制表到另一个数据库中的表的一些技术和方法。在开发或测试应用程序时,复制线上实际运行的数据表到测试环境中,这些方法还是很实用的。

(责任编辑:最模板)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值