表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,有没有大神解释一下?
表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,有没有大神解释一下?
15 回答8.4k 阅读
8 回答6.2k 阅读
5 回答3.2k 阅读✓ 已解决
3 回答3.6k 阅读✓ 已解决
1 回答4.1k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
正常的代码就是返回
0
,因为这个值的意义在于受影响的行数,由于这个地方原值已经为2,所以受影响的行数结果为0无误。对此框架不了解,我推测原因如下:
因为框架中考虑到此处结果一般作为判断操作成功与否的标志,如果一直返回0,则会进入错误逻辑中,故此大部分框架都会重新修改这个值。