on update 配合 case when

insert into seibertron_orgdatasyn.taxsource_submit_result(id,submitTaxSourceId, submitObjType, submitObjId,submitObjGroupId,
        externalPrimaryKey, status, remark, createdTime, createdUserId, riskStatus, riskStatusName)
        values ()
#         <foreach collection="list" item="entity" separator=",">
#             (#{entity.id},#{entity.submitTaxSourceId}, #{entity.submitObjType}, #{entity.submitObjId},#{entity.submitObjGroupId}, #{entity.externalPrimaryKey},
#             #{entity.status}, #{entity.remark}, now(), #{entity.createdUserId}, #{entity.riskStatus},
#             #{entity.riskStatusName})
#         </foreach>
        on duplicate key update

        status = values(status) ,
        externalPrimaryKey = case values(externalPrimaryKey) when  '-1' then externalPrimaryKey else values(externalPrimaryKey) end,
        remark =values(remark) , riskStatus = values(riskStatus) , riskStatusName = values(riskStatusName),createdTime = now()

1. 解决的问题,在批量插入或者更新中,更新需要配合业务条件,当部分数据需要更新,部分则需要保持原来数据

2. 思考:由于是批量插入或者更新,无法配合mybatis的标签使用条件更新

3. 解决方案:配合case when解决;values(externalPrimaryKey)参数,externalPrimaryKey数据库中的值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值