Java上的MySQL“ INSERT ... ON DUPLICATE KEY UPDATE”:如何区分插入/更新/ NoChange状态

卵巢素

我对MySQL的INSERT ... ON DUPLICATE KEY UPDATE语句的返回值感到困惑当我在MySQL客户端(mysql终端,phpmyadmin或MySQL Workbench)上尝试使用它时,执行结果将显示以下内容之一:

  • 1:如果插入了新记录(即没有重复的密钥)。
  • 2:如果存在重复记录,则更新现有记录。
  • 0:如果执行更新,但没有更改列值。

这些结果是有道理的。但是,当我使用Java(使用mysql-connector 5.1.34)在Java中执行相同的查询时,如果同时插入并且没有更改,则JDBC的executeUpdate方法返回1,如果成功更新,则返回2当更新无效时,它不会返回0。

这是MySQL JDBC驱动程序的错误吗?如果是这样,是否有没有此错误的发行版?如果这不是错误,那么如何获得与MySQL客户端返回的结果相同的结果?

Sridhar DD

似乎您需要useAffectedRows手动设置驱动程序属性。

经过一番谷歌搜索后,我得到了解决方案。如果JDBC ExecuteUpdate中没有更改,则可以将此INSERT ON DUPLICATE KEY UPDATE返回0的MySql Bug引用。

同样在讨论中指出他们在5.1.7中发布了它

编辑第二个问题:

useAffectedRows

连接到服务器时不要设置CLIENT_FOUND_ROWS标志(不符合JDBC,将破坏大多数依赖“找到的”行与“受影响的行”的DML语句的应用程序),但会导致“”的更新计数“正确”服务器将返回“ INSERT ... ON DUPLICATE KEY UPDATE”语句。

默认值:false

由于版本:5.1.7

JDBC Connector-j中的参考useAffectedRows

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

调整 INSERT ON DUPLICATE KEY UPDATE

来自分类Dev

PHP MySQL INSERT ON DUPLICATE KEY UPDATE 不起作用

来自分类Dev

MySQL-如何在批处理INSERT ON DUPLICATE KEY UPDATE查询中计算INSERT和UPDATES?

来自分类Dev

MySQL-如何在批处理INSERT ON DUPLICATE KEY UPDATE查询中计算INSERT和UPDATES?

来自分类Dev

为什么在INSERT ... ON DUPLICATE KEY UPDATE上为MySQL中的键“ PRIMARY”给出重复的条目“ x”?

来自分类Dev

INSERT ... ON DUPLICATE KEY UPDATE不起作用

来自分类Dev

INSERT INTO... ON DUPLICATE KEY UPDATE 不更新 PHP 和 mySQL 中的重复值

来自分类Dev

MySQL ON DUPLICATE KEY UPDATE不会更新而是插入

来自分类Dev

MySQL UPDATE ON DUPLICATE KEY仅插入

来自分类Dev

Java PreparedStatement和ON DUPLICATE KEY UPDATE:我如何知道是插入行还是更新行?

来自分类Dev

MySQL-可以“ INSERT INTO-ON DUPLICATE KEY UPDATE”导致数据丢失

来自分类Dev

指定单个列时,MySQL批量INSERT .. ON DUPLICATE KEY UPDATE

来自分类Dev

MySQL-可以“ INSERT INTO-ON DUPLICATE KEY UPDATE”导致数据丢失

来自分类Dev

MySQL INSERT ... ON DUPLICATE KEY不更新表,没有错误或警告

来自分类Dev

将UPDATE转换为INSERT INTO ON DUPLICATE KEY UPDATE语句

来自分类Dev

INSERT INTO ... ON DUPLICATE KEY UPDATE似乎不起作用

来自分类Dev

MySql上的INSERT〜SELECT〜ON DUPLICATE KEY查询出了什么问题?

来自分类Dev

在“ INSERT ON DUPLICATE KEY UPDATE”中,检测在指定插入值时是否使用默认值

来自分类Dev

如果不能忽略由MySQL INSERT ... ON DUPLICATE KEY UPDATE引起的auto_increment差距怎么办?

来自分类Dev

MySQL DUPLICATE KEY UPDATE + SUM函数

来自分类Dev

ON DUPLICATE KEY UPDATE 콜백-MySQL

来自分类Dev

ON DUPLICATE KEY UPDATE回调-MySQL

来自分类Dev

python mysql DUPLICATE KEY UPDATE rrror

来自分类Dev

MySQL 在 DUPLICATE KEY UPDATE 上插入多行 ... WHERE EXISTS(子查询)

来自分类Dev

在执行原始INSERT ... ON DUPLICATE KEY UPDATE时,如何在Laravel 5.1中强制进行时间戳更新?

来自分类Dev

如何在带有ON DUPLICATE KEY UPDATE的INSERT查询中使用WHERE子句?

来自分类Dev

INSERT ... ON DUPLICATE KEY语句的任何错误

来自分类Dev

如何使用INSERT ... ON DUPLICATE?

来自分类Dev

MySQL具有多个唯一键的“ Insert ... On Duplicate Key”

Related 相关文章

  1. 1

    调整 INSERT ON DUPLICATE KEY UPDATE

  2. 2

    PHP MySQL INSERT ON DUPLICATE KEY UPDATE 不起作用

  3. 3

    MySQL-如何在批处理INSERT ON DUPLICATE KEY UPDATE查询中计算INSERT和UPDATES?

  4. 4

    MySQL-如何在批处理INSERT ON DUPLICATE KEY UPDATE查询中计算INSERT和UPDATES?

  5. 5

    为什么在INSERT ... ON DUPLICATE KEY UPDATE上为MySQL中的键“ PRIMARY”给出重复的条目“ x”?

  6. 6

    INSERT ... ON DUPLICATE KEY UPDATE不起作用

  7. 7

    INSERT INTO... ON DUPLICATE KEY UPDATE 不更新 PHP 和 mySQL 中的重复值

  8. 8

    MySQL ON DUPLICATE KEY UPDATE不会更新而是插入

  9. 9

    MySQL UPDATE ON DUPLICATE KEY仅插入

  10. 10

    Java PreparedStatement和ON DUPLICATE KEY UPDATE:我如何知道是插入行还是更新行?

  11. 11

    MySQL-可以“ INSERT INTO-ON DUPLICATE KEY UPDATE”导致数据丢失

  12. 12

    指定单个列时,MySQL批量INSERT .. ON DUPLICATE KEY UPDATE

  13. 13

    MySQL-可以“ INSERT INTO-ON DUPLICATE KEY UPDATE”导致数据丢失

  14. 14

    MySQL INSERT ... ON DUPLICATE KEY不更新表,没有错误或警告

  15. 15

    将UPDATE转换为INSERT INTO ON DUPLICATE KEY UPDATE语句

  16. 16

    INSERT INTO ... ON DUPLICATE KEY UPDATE似乎不起作用

  17. 17

    MySql上的INSERT〜SELECT〜ON DUPLICATE KEY查询出了什么问题?

  18. 18

    在“ INSERT ON DUPLICATE KEY UPDATE”中,检测在指定插入值时是否使用默认值

  19. 19

    如果不能忽略由MySQL INSERT ... ON DUPLICATE KEY UPDATE引起的auto_increment差距怎么办?

  20. 20

    MySQL DUPLICATE KEY UPDATE + SUM函数

  21. 21

    ON DUPLICATE KEY UPDATE 콜백-MySQL

  22. 22

    ON DUPLICATE KEY UPDATE回调-MySQL

  23. 23

    python mysql DUPLICATE KEY UPDATE rrror

  24. 24

    MySQL 在 DUPLICATE KEY UPDATE 上插入多行 ... WHERE EXISTS(子查询)

  25. 25

    在执行原始INSERT ... ON DUPLICATE KEY UPDATE时,如何在Laravel 5.1中强制进行时间戳更新?

  26. 26

    如何在带有ON DUPLICATE KEY UPDATE的INSERT查询中使用WHERE子句?

  27. 27

    INSERT ... ON DUPLICATE KEY语句的任何错误

  28. 28

    如何使用INSERT ... ON DUPLICATE?

  29. 29

    MySQL具有多个唯一键的“ Insert ... On Duplicate Key”

热门标签

归档