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);
insert into inserttest
(id, name)
select 100, 'liudehua'
from dual
where not exists (select * from inserttest
where inserttest.id = 100);
mysql清空表(truncate)与删除表中数据(delete)的区别
为某基于wordpress搭建的博客长久未除草,某天升级的时候发现已经被插入了几万条垃圾留言,如果一条条删除那可真是累人的活。遂考虑直接进入mysql直接清空表或者删除表中数据。
本文记录一下这2种操作模式的区别,目标对象是表wp_comments,里面的所有留言均是垃圾留言,均可删除。然后便有了以下2种方式(进入mysql操作界面后):
truncate table wp_comments;
delete * from wp_comments;
其中truncate操作中的table可以省略,delete操作中的*可以省略。这两者都是将wp_comments表中数据清空,不过也是有区别的,如下:
truncate是整体删除(速度较快), delete是逐条删除(速度较慢)。
truncate不写服务器log,delete写服务器log,也就是truncate效率比delete高的原因。
truncate不激活trigger(触发器),但是会重置identity(标识列、自增字段),相当于自增列会被置为初始值,又重新从1开始记录,而不是接着原来的id数。而delete删除以后,identity依旧是接着被删除的最近的那一条记录id加1后进行记录。
如果只需删除表中的部分记录,只能使用delete语句配合where条件。 delete from wp_comments where……
网站整站营销、、网站推广之间的区别与联系做好网站设计的几点建议!深圳企业网站优化搜索引擎有什么优势?网站建设的关键是什么浅析定制型网站的具体优势是什么影响网站自然搜索流量的因素有哪些?互联网平台变了,互联网营销玩法怎么变SEO域名关键词优化排名非常规技巧方法