首页  >  问答  >  正文

java - 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,有没有大神解释一下?

高洛峰高洛峰2762 天前390

全部回复(1)我来回复

  • 黄舟

    黄舟2017-04-18 09:07:55

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

    回复
    0
  • 取消回复