on duplicate key update用法实例

蔚落 2023-01-16 11:07 238阅读 0赞

今天查看别人代码发现一个新名词:on duplicate key update,觉得挺新颖的,这里做个笔记

on duplicate key update说明:大概的意思是出现重复主键的时候,进行更新。没有重复的时候进行插入操作。

功能:插入一个用户,如果存在就做修改操作,不存在就插入用户

使用实例:

  1. <insert id="insertOrUpdateBatch" keyProperty="id" useGeneratedKeys="true">
  2. insert into user(code, name, province, city)
  3. values
  4. <foreach collection="entities" item="entity" separator=",">
  5. (#{entity.code}, #{entity.name}, #{entity.province}, #{entity.city}
  6. </foreach>
  7. on duplicate key update
  8. code = values(code) , name = values(name) , province = values(province) , city = values(city)
  9. </insert>

使用注意:
更新的内容中unique key或者primary key最好保证一个,不然不能保证语句执行正确
如果上面的sql除了id,code也是一个唯一键,那么结果就会出现错误。
也就是说会出现两种情况导致执行update,但是udpate只会执行一次。这样就不能保证更新的数据行是你自己想要的。

发表评论

表情:
评论列表 (有 0 条评论,238人围观)

还没有评论,来说两句吧...

相关阅读

    相关 on duplicate key update简单使用

    在实际应用中,经常碰到导入数据的功能,当导入的数据不存在时则进行添加,有修改时则进行更新, 在刚碰到的时候,第一反应是将其实现分为两块,分别是判断增加,判断更新,后来发现在