Java MySQL executeUpdate()对于在重复密钥更新中插入时返回什么?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java MySQL executeUpdate()对于在重复密钥更新中插入时返回什么?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1235字,纯文字阅读大概需要2分钟。
内容图文
![Java MySQL executeUpdate()对于在重复密钥更新中插入时返回什么?](/upload/InfoBanner/zyjiaocheng/888/c68b6a3341bb494d82af1dd4b912028d.jpg)
我花了大约3个小时在互联网上进行检查,但仍然找不到该问题的答案.
Java documentation以及此tutorial表示:
Returns: either (1) the row count for SQL Data Manipulation Language
(DML) statements or (2) 0 for SQL statements that return nothing
因此,这意味着:
>插入1行,没有重复-> 1
>插入3行,没有重复-> 3
>插入3行,所有重复项均不重复,并且不更新值-> 0
>插入3行,其中包含2个无重复项和1个重复项以更新值-> 3
>插入3行,其中包含2个无重复项和1个不会更新值的重复项-> 2
或者至少这是我从文档中了解的内容.
但是,在StackOverflow上阅读其他问题here和here再次使我感到困惑,因为它没有描述此行为,而是描述了MySQL documentation所说的内容
With ON DUPLICATE KEY UPDATE, the affected-rows value per row is 1 if
the row is inserted as a new row, 2 if an existing row is updated, and
0 if an existing row is set to its current values.
如果前者的行为是使用连接器的Java独有,而后者是通过直接的MySQL操作专有的,那么这仍然有意义,但是正如我之前说的,我发现答案表明它使用的是第一个或第二个相互矛盾.
这对我很重要,因为在我的代码上,我对许多条目进行了更新更新,并通过将返回值与数组进行比较以检查计数是否成功执行了插入操作.
解决方法:
With ON DUPLICATE KEY UPDATE, the affected-rows value per row is 1 if the row is inserted as a new row, and 2 if an existing row is updated.
内容总结
以上是互联网集市为您收集整理的Java MySQL executeUpdate()对于在重复密钥更新中插入时返回什么?全部内容,希望文章能够帮你解决Java MySQL executeUpdate()对于在重复密钥更新中插入时返回什么?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。