Mysql—实现批量插入,存在就更新,不存在就插入

转载 2018年04月16日 18:26:49

Mysql插入数据的SQL语句主要有:

1、insert into表示插入数据,数据库会检查主键,如果出现重复会报错;

2、replace into表示插入替换数据,需求表中有PrimaryKey,或者unique索引,如果数据库已经存在数据,则用新数据替换,如果没有数据效果则和insert into一样;

3、insert ignore表示,如果表中如果已经存在相同的记录,则忽略当前新数据;

[java] view plain copy
  1. create table testtb(    
  2. id int not null primary key,    
  3. name varchar(50),    
  4. age int   
  5. );    
  6. insert into testtb(id,name,age)values(1,'bb',13);    
  7. select * from testtb;    
  8. insert ignore into testtb(id,name,age)values(1,'aa',13);    
  9. select * from testtb;    
  10. replace into testtb(id,name,age)values(1,"aa",12);    
  11. select * from testtb;  


4、on duplicate key update 使用该语法可在插入记录的时候先判断记录是否存在,如果不存在则插入,否则更新,很方便,无需执行两条SQL 

注:需要设置Mysql表的unique唯一索引值

sql 批量操作(存在的更新,不存在的插入)

update A SET A.NAME= ( select B.NAME from #tmpTB2 B where B.ID=A.ID ) FROM #tmpTB3 A insert into #...
  • keenweiwei
  • keenweiwei
  • 2012-09-06 18:13:29
  • 5132

Mysql 在 mybatis 环境下 批量新增 并 将已存在的数据更新

insert into ipp_info_price (ipp_package_id, ipp_resource_id,        info_price, created_at,ipp_regi...
  • iyangyl
  • iyangyl
  • 2016-02-18 14:28:50
  • 3252

mysql记录存在就更新不存在就插入

在平时的开发中一定会遇到一中情况记录存在就跟新不存在就插入的情况,一般的做法就是先查记录判断记录是否存在,不存在就执行插入语句,存在就执行更新语句 如下例子 $result = mysql_q...
  • a454213722
  • a454213722
  • 2015-04-08 10:12:28
  • 3499

MySql_插入记录时,存在就更新(或不做任何动作),不存在就添加

今天本码农在批量插入数据的时候,遇到一个问题,由于数据是经常更新的,但是又不想出现冗余数据,所以我希望达到的目的是:插入一条数据的时候,先判断是否存在这条记录,如果存在,我就更新这条记录,不存在就插入...
  • BuptZhengChaoJie
  • BuptZhengChaoJie
  • 2016-03-27 18:37:48
  • 19479

Mysql 存在既更新,不存在就添加(sql语句)

INSERT 语句的一部分,如果指定 ON DUPLICATE KEY UPDATE ,并且插入行后会导致在一个UNIQUE索引或PRIMARY KEY中出现重复值,则在出现重复值的行执行UPDATE...
  • woshihaiyong168
  • woshihaiyong168
  • 2017-07-13 17:29:43
  • 6969

Mysql 如果数据存在则更新,不存在则插入

首选把 ALTER TABLE tb_acl_statistics ADD UNIQUE (aclid,trojan_name); INSERT IGNORE  INTO tb_acl_stat...
  • JustHaveTry
  • JustHaveTry
  • 2014-07-03 10:00:41
  • 1089

mysql 如果数据不存在,则插入新数据,否则更新的实现方法

CREATE TABLE `table_test` ( `my_key` int(11) NOT NULL default '0', `value` varchar(21) NOT NULL d...
  • zxk364961978
  • zxk364961978
  • 2017-05-09 13:41:15
  • 3877

mysql和sqlserver存在就更新,不存在就插入的写法

sqlsever数据存在就更新,不存在就插入的两种方法 两种经常使用的方法: 1. Update, if @@ROWCOUNT = 0 then insert UPDATETab...
  • lnc2003
  • lnc2003
  • 2015-03-31 17:54:17
  • 3060

mybatis批量新增,存在就更新(mysql数据库)

只需要把要批量新增的实体类放到集合中,作为参数传给dao, 最关键就是Mapper文件中,直接上代码:   insert into counterparty()   values    ...
  • k469785635
  • k469785635
  • 2017-07-20 17:44:21
  • 444
收藏助手
不良信息举报
您举报文章:Mysql—实现批量插入,存在就更新,不存在就插入
举报原因:
原因补充:

(最多只允许输入30个字)