一,更新触发条件:插入的主键或其他的唯一约束列值相同就会更新
二,mybatis写法:
<insert id="insertOrUpdate">
insert into bas_data(
bas_data.rel_plan_id,
bas_data.rel_namespace_id,
bas_data.rel_class_id,
bas_data.code,
bas_data.name,
bas_data.path,
bas_data.tenant_id,
bas_data.used_enable,
bas_data.c_user_id,
bas_data.m_user_id,
bas_data.mtime,
bas_data.ctime,
bas_data.secret_code,
bas_data.secret_name
) values
<foreach collection="list" item="item" separator=",">
(
#{item.relPlanId},
#{item.relNamespaceId},
#{item.relClassId},
#{item.code},
#{item.name},
#{item.path},
#{item.tenantId},
#{item.usedEnable},
#{item.cUserId},
#{item.mUserId},
#{item.mtime},
#{item.ctime},
#{item.secretCode},
#{item.secretName}
)
</foreach>
ON DUPLICATE KEY UPDATE
rel_namespace_id = values(rel_namespace_id),
`name` = values(name),
m_user_id = values(m_user_id),
secret_code = values(secret_code),
secret_name = values(secret_name),
mtime = values(mtime);
</insert>
三,下面的values函数会引用插入的值进行批量更新