1、replace into 的做法是先根据主键来判断数据是否存在,如果存在即删除旧数据后重新插入数据,来达到update的目的
<insert id="insertOrUpdateData" useGeneratedKeys="true" keyProperty="id" parameterType="list">
replace into datas
(<include refid="column"/>)
VALUES
<foreach collection="list" item="it" separator=",">
( #{it.data})
</foreach>
</insert>
以上采用id主键(也可为 唯一索引)来进行判断
2、ON DUPLICATE KEY 判断主键
INSERT INTO person (id,age,name,address,score)VALUES( 1, 18 , '张三' ,'洛阳',1) ON DUPLICATE KEY UPDATE name='王五',address='北京海淀'score = score + 1