博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MySQL 数据库怎样把一个表的数据插入到另一个表
阅读量:5903 次
发布时间:2019-06-19

本文共 1221 字,大约阅读时间需要 4 分钟。

   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, 字段2, ... FROM 来源表;
 注意字段的顺序必须一致。
insert 
into insertTest2(id) 
select id 
from insertTest2;
3.如果您需要只导入目标表中不存在的记录,可以使用这种方法:
 INSERT INTO 目标表  
 (字段1, 字段2, ...)  
 SELECT 字段1, 字段2, ...  
 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 语句后面直接跟上要插入的字段的值。
     本文转自NightWolves 51CTO博客,原文链接:http://blog.51cto.com/yangfei520/381568
,如需转载请自行联系原作者
你可能感兴趣的文章
python模块之shutil
查看>>
浮动的label
查看>>
前端工程化
查看>>
微信公众号开发中的支付流程
查看>>
PowerShell 学习笔记 - 1 PS Core 基础
查看>>
NodeJS+Express搭建个人博客-环境搭建(一)
查看>>
关于iOS 11.x微信连wifi流程中,在Portal页无法拉起微信问题的简单记录
查看>>
Golang Gin实践 番外 请入门 Makefile
查看>>
时间戳转换成时间日期格式及去重
查看>>
【docker实操】使用docker部署一个laravel应用
查看>>
Python GUI库wxPython官网Hello World示例的逐行解释
查看>>
MyBatis的常见属性总结select、insert、update、delete
查看>>
vue无缝滚动的插件开发填坑分享
查看>>
webpack引入eslint详解
查看>>
FileReader api
查看>>
Redis分片(分布式缓存)
查看>>
Linux基础命令---dumpe2fs
查看>>
深入浅出HTTPS
查看>>
微软开源用于 Azure 数据压缩的算法、硬件和源码
查看>>
Angularjs 与三方js插件配合使用,并通过模板动态解析angularjs 语法
查看>>