发生场景
工作时发现,之前定时任务拉取数据时,都是先查询一遍数据,判断是否重复后再进行添加,这样效率太慢,便直接改写xml语句。因为框架使用的ibatis一开始在标签中改成replace into是不能用的,后查询相关资料后改成insert into on dumplicate key update语句即可正常使用。需数据库设置唯一索引,即insert into on dumplicate key update语句后的字段。
使用
ibatis使用,此处数据库唯一索引为name,pwd
replace into(ibatis会报错,mybatis正常)
<insert id="insert">
replace into test (name,pwd) values(#name#,#id#)
</insert>
insert into on dumplicate key update(替代replace into使用)
<insert id="insert">
insert into test (name,pwd) values(#name#,#id#)
ON DUPLICATE KEY UPDATE
name=#name#,pwd=#pwd#
</insert>