<insert id="mergeBank" parameterType="java.util.List">
merge into EMP a //into 后跟要去插入的表
using
(
<foreach collection="emps" item="emp" open="" close="" separator="union all">//循环传进来的对象集合
select
#{emp.sjdwdm} sjdwdm,
#{emp.cbkmid} cbkmid,
#{emp.department} department,
#{emp.station} station,
#{emp.id} id
from dual
</foreach>
) b
on (
a.ID = b.id //表关联关系 一旦写了下方则该字段不能被 update
)
when
matched then //满足就修改
UPDATE SET
a.SJDWDM = b.sjdwdm,
a.CBKMID=b.cbkmid,
a.DEPARTMENT = b.department,
a.STATION=b.station
when
not matched then //不满足添加
INSERT(
a.SJDWDM,
a.CBKMID,
a.DEPARTMENT,
a.STATION
) VALUES(
b.sjdwdm,
b.cbkmid,
b.department,
b.station
)
</insert>