前言
在实际开发中,经常遇到更新和插入操作,很多时候,我们会将两个方法的sql合并为一个,即可以实现插入操作,也可以实现更新操作,下面给与详细的示例
sql实例
基本语法:
INSERT INTO tablename(field1,field2, field3, ...) VALUES(value1, value2, value3, ...) ON DUPLICATE KEY UPDATE field1=value1,field2=value2, field3=value3, ...;
mapper方法:
Integer batchUpdatePilicoinAward(List list);
<insert id="batchUpdatePilicoinAward">
insert into royalty_detail (trade_id,pilicoin_award,update_time,award_status) values
<foreach collection="list" item="item" index="index" separator=",">
(#{item.tradeId},#{item.pilicoinAward},#{item.updateTime},#{item.awardStatus})
</foreach>
on duplicate key update
pilicoin_award = values(pilicoin_award),
update_time =values(update_time),
award_status = values(award_status);
</insert>
使用说明
以上sql语句,先执行insert into插入语句,如果插入失败,则执行update更新语句,从而实现插入和更新sql合并功能。
但以上语句的执行成功需要一个条件,也就是插入语句的字段中必须至少有一个字段是唯一索引,比如id,如果都可以插入成功,那更新就不会执行了。
本文介绍了一种在SQL中合并插入和更新操作的方法,通过使用ON DUPLICATE KEY UPDATE语句,可以在遇到重复键时自动更新现有记录,适用于需要同时处理新记录插入和已有记录更新的场景。
1376

被折叠的 条评论
为什么被折叠?



