在MySQL中复制A表数据到B表中,有两种方式可以实现,INSERT INTO SELECT 语句和 INSERT INTO SELECT 语句,分别适应于B表存在以及B表不存在的两种场景。
接下来,我们详细的了解一下,如何使用 INSERT INTO SELECT 语句和 INSERT INTO SELECT 语句实现数据复制,为了方便演示,我们使用如下 Students_hobby_t(原始表) 和 Students_hobby_h(目标表) 两张表作为演示数据,如下:
INSERT INTO SELECT 语法INSERT INTO SELECT 语句从一个表复制数据,然后把数据插入到一个已存在的表中。目标表中任何已存在的数据不会受影响。
如下,我们可以从原始表中复制所有的列插入到另一个已存在的目标表中:
或者,我们可以只复制特定的列插入到另一个已存在的目标表中:
INSERT INTO SELECT 实例复制 "Students_hobby_t" 中的数据插入到 "Students_hobby_h" 中:
只复制 Hobby_id = 10 的学生爱好信息 到 "Students_hobby_h" 中:
SELECT INTO FROM 语法使用 INSERT INTO SELECT 语句时,要求目标表存在。若在目标表不存在的情况下,复制数据可以使用 SELECT INTO FROM 语句 。
SELECT INTO FROM 语句从原始表复制数据,然后把数据插入到另一个新的目标表中,表结构与查询结构一致。
如下,我们可以从原始表复制所有的列插入到新的目标表中:
或者,只复制指定的列插入到新的目标表中:
新表将会使用 SELECT 语句中定义的列名称和类型进行创建。您可以使用 AS 子句来应用新名称。
SELECT INTO FROM 实例创建 Students_hobby_h 的数据备份表 Students_hobby_h_backup:
只复制某几列插入到新的目标表中:
只复制符合指定条件的数据插入到新的目标表中:
复制多个表中的数据插入到新的目标表中:
Copyright © 广州京杭网络科技有限公司 2005-2024 版权所有 粤ICP备16019765号
广州京杭网络科技有限公司 版权所有