数据准备
ON DUPLICATE KEY UPDATE
insert into test_table(id,username)
VALUES(4,'fukaiit')
ON DUPLICATE KEY UPDATE username='fukaiit'
执行如上sql,该id不存在(此处id不存在,指的是id为X的记录不存在,包括主键、unique索引列等情况),相当于执行了insert部分,普通插入,受影响的行:1。
insert into test_table(id,username)
VALUES(1,'fukaiit')
ON DUPLICATE KEY UPDATE username='fukaiit'
执行如上sql,该id已存在,相当于执行了update部分,受影响的行:2。
执行结果如下,注意只是更新username,是保留了email的。
存在即不插入
insert ignore into lotus.hfxlocation(_name,id,lat,lon,adm2,adm1,country,tz,utcOffset,isDst,_type,_rank,fxLink)value('光 明','101280610',22.74875,113.93605,'深圳','广东省','中国','Asia/Shanghai','+08:00',0,'city',40,'http://hfx.link/76y5v2pzwg1');
参考文档:教你Mysql如何实现不存在则插入,存在则更新_java晴天过后的博客-CSDN博客_mysql 不存在则插入