<insert id="updateOrInsertClientInfo" useGeneratedKeys="true" keyProperty="BM" parameterType="list" > replace into bm_kh (<include refid="Base_Column_List"/>) VALUES <foreach collection="list" item="it" separator=","> ( #{it.bm},#{it.mc},#{it.jm}, #{it.sjbm},#{it.kjm},#{it.sh}, #{it.dzdh},#{it.jwbz},#{it.yhzh}, #{it.yjdz},#{it.bz},#{it.yskm}, #{it.dqbm},#{it.dqmc},#{it.dqkm}, #{it.sfzjy},#{it.wj},#{it.xfsh}, #{it.xfzfjh} ) </foreach> </insert>
replace into 跟 insert 功能類似,不同點在於:replace into 首先嘗試插入數據到表中, 1. 如果發現表中已經有此行數據(根據主鍵或者唯一索引判斷)則先刪除此行數據,然后插入新的數據。 2. 否則,直接插入新數據。
要注意的是:插入數據的表必須有主鍵或者是唯一索引!否則的話,replace into 會直接插入數據,這將導致表中出現重復的數據。