当前位置: 代码迷 >> 综合 >> mysql中的批量更新
  详细解决方案

mysql中的批量更新

热度:71   发布时间:2023-09-22 05:39:53.0

对于mysql中的批量更新,站在java程序员的角度而言,可以使用分条更新、或者用case  when 这样的方式。

我就是使用的case when这样的方式。但是被提了一个bug,大体意思是这样

update a set tag=
case tag
when 1 then 11
end
where bId=12

嗯,有问题。

问题在于,bId是个逻辑外键,所以根据bId会查询出很多数据,比如查询出tag可以是[1,2,3]这个集合,但是2,3并不在上面的when情况中。这时候数据库就会将tag字段修改为null,此时tag字段如果做了not null的限制,就会报错。就会被提bug,呜呜呜~

那么解决方案的话,就是在where条件中加上tag in(),这样就不会超出范围了。或者在case语句中添加 else tag,代表如果没在范围内就不修改。可以根据情况自行选择。

好,就这些。

  相关解决方案