Mysql+Mybatis
ON DUPLICATE KEY UPDATE
number为unique具有唯一性
<insert id="insertOrUpdate" parameterType="List">
insert into white_list (id,number,status,remark) values
<foreach collection="list" item="item" index="index" separator=",">
(
#{item.id},
#{item.number},
#{item.status},
#{item.remark}
)
</foreach>
ON DUPLICATE KEY UPDATE
id=values(id),status =values(status),remark=values(remark)
</insert>
Oracle+Mybatis
merge into
<update id="insertOrUpdate" parameterType="List">
merge into white_list a
using (<foreach collection="list" index="index" item="item" separator="union all">
SELECT
#{item.id,jdbcType=VARCHAR} as id,
#{item.number,jdbcType=VARCHAR} as number1,
#{item.status,jdbcType=INTEGER} as status,
#{item.remark,jdbcType=VARCHAR} as remark
from dual
</foreach>)b
on (a."NUMBER" = b.number1)
when not matched then
insert (a.id,a."NUMBER",a.status,a.remark) values(b.id,b.number1,b.status,b.remark)
when matched then
update set a.id = b.id,a.status = b.status,a.remark = b.remark
</update>
版权声明:本文为qq_43236333原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。