前言
在实际开发中,经常遇到更新和插入操作,很多时候,我们会将两个方法的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语句中Update和Insert语句合并
发布评论