MYSQL5.6 ROW_COUNT()返回不一致

表t_test中已存在id = 97并且num = 2的记录

重复执行以下SQL:

UPDATE t_test SET num = 2 WHERE id = 97;
select ROW_COUNT();

在navicat for mysql或者mysql workbench中,ROW_COUNT()=0,但是在java程序(dbutils框架)中总是返回1,有没有大神解释一下?

阅读 2.8k
1 个回答

正常的代码就是返回0,因为这个值的意义在于受影响的行数,由于这个地方原值已经为2,所以受影响的行数结果为0无误。
对此框架不了解,我推测原因如下:
因为框架中考虑到此处结果一般作为判断操作成功与否的标志,如果一直返回0,则会进入错误逻辑中,故此大部分框架都会重新修改这个值。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题