插入数据,如果数据库中主键已存在则更新on duplicate key update后的字段,主键不变。
<!-- 插入/更新设备列表 -->
<insert id="insertOrUpdateList" parameterType="java.util.List">
insert into tmp
<trim prefix="(" suffix=")" >
uid, m_id, name,is_selected,is_delete,create_time,create_userid
</trim>
values
<foreach collection="list" item="item" index="index" separator=",">
<trim prefix=" (" suffix=")" suffixOverrides="," >
<choose>
<when test="item.uid !=null and item.uid != ''">
#{item.uid,jdbcType=VARCHAR},
</when>
<otherwise>
md5(uuid()),
</otherwise>
</choose>
#{item.mId,jdbcType=INTEGER},
#{item.name,jdbcType=VARCHAR},
#{item.isSelected,jdbcType=VARCHAR}
</trim>
</foreach>
on duplicate key update
m_id= VALUES(m_id),
name=VALUES(name),
is_selected=VALUES(is_selected)
</insert>