mysqlupdate时数据不存在新增_mysqlsql语句新增判断,存在
修改,不存在新增
场景:
在实际应⽤中,经常碰到导⼊数据的功能,当导⼊的数据不存在时则进⾏添加,有修改时则进⾏更新,
在刚碰到的时候,第⼀反应是将其实现分为两块,分别是判断增加,判断更新,后来发现在mysql中有
ON DUPLICATE KEY UPDATE⼀步就可以完成,感觉实在是太⽅便了。
该语句是基于唯⼀索引或主键使⽤(唯⼀索引优先级⾼于主键)
举例:
在mybatis中进⾏单个增加或修改sql的写法为:
insert into camera_info( cameraId,zone1Id,zone1Name,zone2Id,zone2Name,zone3Id,zone3Name,zone4Id,zone4Name) VALUES(
#{cameraId},#{zone1Id},#{zone1Name}, #{zone2Id},
#{zone2Name}, #{zone3Id}, #{zone3Name},
#{zone4Id}, #{zone4Name},)
ON DUPLICATE KEY UPDATE
cameraId = VALUES(cameraId),
zone1Id = VALUES(zone1Id),zone1Name = VALUES(zone1Name),
zone2Id = VALUES(zone2Id),zone2Name = VALUES(zone2Name),
zone3Id = VALUES(zone3Id),zone3Name = VALUES(zone3Name),
zone4Id = VALUES(zone4Id),zone4Name = VALUES(zone4Name)
在mybatis中进⾏批量增加或修改的sql为:
insert into camera_info(
批量更新sql语句
zone1Id,zone1Name,zone2Id,zone2Name,zone3Id,zone3Name,zone4Id,zone4Name,
cameraId
)VALUES
(
#{1Id}, #{1Name}, #{2Id},
#{2Name}, #{3Id}, #{3Name},
#{4Id}, #{4Name},
#{cameraInfo.cameraId},
)
ON DUPLICATE KEY UPDATE
zone1Id = VALUES(zone1Id),zone1Name = VALUES(zone1Name),zone2Id = VALUES(zone2Id),
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论