计数INSERT/ON重复密钥更新

编程入门 行业动态 更新时间:2024-10-28 20:17:27
本文介绍了计数INSERT/ON重复密钥更新的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我有这个SQL查询:

INSERT INTO `Items` (`id`,`parent_id`,`name`) VALUES (123,321,null) ON DUPLICATE KEY UPDATE `id` = `id`, `parent_id` = VALUES(`parent_id`), `name` = VALUES(`name`);

我使用phpmyadmin运行查询,并返回正确的结果:

I run the query with phpmyadmin, and it returns me right results:

0 - No update 1 - Line inserted 2 - Line updated

但是当我通过java/jdbc运行查询时,查询返回1-1-2 也就是说,如果根本没有插入/更新,则返回1. 任何的想法?是一个错误还是我只是想念一些东西?

But when I run the query via java/jdbc, the query returns 1-1-2 That is, 1 is returned when there's no insert/update at all. Any idea? Is it a bug or I just miss something?

更新:最新的连接器/j-v5.1.26

UPDATE: Latest connector/j - v5.1.26

UPDATE2:Java代码

UPDATE2: Java code

int ans1 = 0; int ans2 = 0; try { java.sql.Connection c = DbConnector.getConn(); Statement s = c.createStatement(); ans1 = DbConnector.execute("INSERT INTO `Items` (`id`,`parent_id`,`name`) VALUES (123,9990635,null) ON DUPLICATE KEY UPDATE `id` = `id`, `parent_id` = VALUES(`parent_id`), `name` = VALUES(`name`);"); ans2 = DbConnector.execute("INSERT INTO `Items` (`id`,`parent_id`,`name`) VALUES (123,9990635,null) ON DUPLICATE KEY UPDATE `id` = `id`, `parent_id` = VALUES(`parent_id`), `name` = VALUES(`name`);"); s.close(); } catch (Exception e) { e.printStackTrace(); } System.out.println(ans1); System.out.println(ans2);

推荐答案

根据 在未进行任何更改的情况下,INSERT ON DUPLICATE返回1而不是0 您需要将属性"useAffectedRows"设置为"true".

According to INSERT ON DUPLICATE returns 1 instead of 0 when nothing is changed You need to set property "useAffectedRows" to be "true".

更多推荐

计数INSERT/ON重复密钥更新

本文发布于:2023-10-23 03:37:23,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1519643.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:密钥   INSERT

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!