- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
MySQL 数据库怎样把一个表的数据插入到另一个表
标签:mysql insert 另一张表
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。/1041581/381568
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,namefrom insertTestwhere not exists (select * from insertTest2where 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 语句后面直接跟上要插入的字段的值。
本文出自 “夜狼” 博客,请务必保留此出处/1041581/381568
一个利用触发器(trigger)记录表操作的例子
2007-12-21 16:54
首先建立数据库Test,建立两个表,我们命名为grades和audit,利用audit实现对grades的审计功能,其中grades用于存放学生的成绩,包括“sdudentID,courseID,grade”三个字段,主键为sdudentID,courseID;audit仅仅比表grades增加了两个字段:changeType,changTime,用于记录grades表被修改的类型和修改时间。建立2个表格的sql语句如下:create table grades(studentID int,courseID int,grade int,primary key(studentID,courseID));create table audit(changeType char(15),changeTime datetime,studentID int,courseID int,grade int,primary key(changeType,changeTime,studentID,courseID,grade))然后在表grades上建立触发器,如果对grades表进行“insert”,delete,update操作,在audit表中分别记录这些操作的类型(update(old,new),insert或者delete),操作的时间,操作影响的数据(比如被删除的数据,插入的数据,修改前的数据,修改后的数据)。建立触发器的sql语言如下:/*the beginning of the trigger
文档评论(0)