项目场景:
项目使用mysql作为数据库,其他sql语句都正常执行
如果一直报语法错误,但是检查以后没有发现语法问题时。
可以看一下自己的业务是不是在进行批量操作,如果是,需要允许批量操作。
问题描述:
mysql,在做批量删除时,一直报语法错误(check the manual that corresponds to your MySQL server version for the right syntax to use near …)。但是将语句复制到数据库去实现时是可以正常实现的。
xml如下:
delete from R where ID = #{ID} and pid in(${IDS});
<if test="OP != null and OP != '' and OP == '1'.toString() ">
DELETE FROM TR WHERE D= #{ID} and pid in(${IDS}) and RID = #{RID} ;
DELETE FROM TV WHERE ID= #{ID} and pid in(${IDS}) and RID = #{RID} ;
</if>
原因分析:
批量删除比较敏感,需要允许数据库批量操作
解决方案:
在配置文件的数据源url处加上如下语句:
&allowMultiQueries=true