Mysql批量更新的一个坑-&allowMultiQueries=true允许批量更新

Posted 周永发

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mysql批量更新的一个坑-&allowMultiQueries=true允许批量更新相关的知识,希望对你有一定的参考价值。

前言

           利用Mybatis批量更新或者批量插入,实际上即使Mybatis完美支持你的sql,你也得看看你操作的数据库是否完全支持,而同事,最近就遇到这样的一个坑!

 

问题

        先带大家来看一段sql的配置:

    

1 <update id="updateAllAvailable">
2   <foreach collection="skuOptionList" item="item" index="index" open="" close="" separator=";"> 
    update t_xxx
3 <set> old_id = #{item.oldId} </set> 4 where id = #{item.id} 5 </foreach> 6 </update>

     以上的配置动态SQL看着没有问题,这里用到了Mybatis的动态sql,实际上说白了也就是拼sql,不过这个繁杂的工作交给Mybatis帮我们去做了,可是,只要一执行就要报语法错误。

  解决方案

    后来发现,原来mysql的批量更新是要我们主动去设置的, 就是在数据库的连接url上设置一下,加上* &allowMultiQueries=true *即可。

       

 

以上是关于Mysql批量更新的一个坑-&allowMultiQueries=true允许批量更新的主要内容,如果未能解决你的问题,请参考以下文章

Mybatis -- 批量更新 -- updateBatch

mybatis批量更新

mysql 设置允许重试,批量更新

mybatis批量更新

mybatis执行批量更新batch update 的方法

170829mybatis使用oracle和mybatis中批量更新