报了一个这个错,很奇怪哈
sql injection violation, syntax error: syntax error, error in :‘THEN DELETE;’, expect UPDATE, actual DELETE pos 169, line 1, column 163, token DELETE
这是一个什么错呢?其实看错误信息就知道,它觉得THEN DELETE有语法错误,它希望你使用UPDATE,也就是它希望你用修改而不是删除。
那么作为一个面向百度编程的程序员,我果断选择百度。结果万能的度娘也没能救我,那只好问万能的同事了,结果同事也是一脸懵逼。
啊这,不愧是我,做到了大家都不会报的bug。
这就是我为什么写这篇博客的原因了,希望别人不要像我一样踩坑了。
那不多bb,上解决方案。
其实我一直在喷mybatis觉得是他拦截了我,其实不然,因为我发现我用了一个其他的代理。
看到这里大家可能就明白了?
没错,就是druid,没错就是这个家伙,这个来自阿里的家伙。
可能是阿里觉得删除不妥,因为crud嘛,其实删除都是很少的,基本上都是修改,表里也就多个状态的字段,来判断状态,所以觉得不需要删除。
sql如下:
merge into 表
using 【select sql】
when matched then
【update sql】
when not matched then
【insert sql】
但是我是这样写的
merge into 表
using 【select sql】
when matched then delete