加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

Mysql实例MySQL 关于表复制 insert into 语法的详细介绍

发布时间:2020-12-12 00:55:08 所属栏目:MySql教程 来源:网络整理
导读:《Mysql实例MySQL 关于表复制 insert into 语法的详细介绍》要点: 本文介绍了Mysql实例MySQL 关于表复制 insert into 语法的详细介绍,希望对您有用。如果有疑问,可以联系我们。 web开发中,我们经常需要将一个表的数据插入到另外一个表,有时还需要指定导入

《Mysql实例MySQL 关于表复制 insert into 语法的详细介绍》要点:
本文介绍了Mysql实例MySQL 关于表复制 insert into 语法的详细介绍,希望对您有用。如果有疑问,可以联系我们。

web开发中,我们经常需要将一个表的数据插入到另外一个表,有时还需要指定导入字段,设置只需要导入目标表中不存在的记录,虽然这些都可以在程序中拆分成简单sql来实现,但是用一个sql的话,会节省大量代码.下面我以mysql数据库为例分情况一一说明:
两张表:insertTest和insertTest2,前者中有测试数据
代码如下:
create table insertTest(id int(4),name varchar(12));
insert into insertTest values(100,‘liudehua');
insert into insertTest values(101,‘zhourunfa');
insert into insertTest values(102,‘zhouhuajian');

1.如果2张表的字段一致,并且希望插入全部数据,可以用这种方法:
? INSERT INTO 目标表 SELECT * FROM 来源表;
代码如下:
insert into insertTest select * from insertTest2;

2.如果只希望导入指定字段,可以用这种方法:
代码如下:
INSERT INTO 目标表 (字段1,字段2,…) SELECT 字段1,… FROM 来源表;?

注意字段的顺序必须一致.
代码如下:
insert into insertTest2(id) select id from insertTest2;

3.如果您需要只导入目标表中不存在的记录,可以使用这种方法:
代码如下:
?INSERT INTO 目标表?
?(字段1,…)?
?SELECT 字段1,…?
?FROM 来源表?
?WHERE not exists (select * from 目标表?
?where 目标表.比较字段 = 来源表.比较字段);

1>.插入多条记录:
代码如下:
insert into insertTest2
(id,name)
select id,name
from insertTest
where not exists (select * from insertTest2
where insertTest2.id=insertTest.id);

2>.插入一条记录:
代码如下:
insert into insertTest
(id,name)
SELECT 100,‘liudehua'
FROM dual
WHERE not exists (select * from insertTest
where insertTest.id = 100);

使用 dual 作表名,select 语句后面直接跟上要插入的字段的值.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读