- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在执行相同的 sql 命令 ON DUPLICATE KEY UPDATE v=v
有两种方式。
命令:INSERT INTO VS (v) VALUES ('someValue') ON DUPLICATE KEY UPDATE v=v;
两种方式给出不同的结果:
Query OK, 0 rows affected (0.14 sec)
mysql-connector-java-8.0.11.jar
) 并使用 int res = ps.executeUpdate(...)
执行相同的命令时,结果为1。从java文档来看,结果是the row count for SQL Data Manipulation Language (DML) statements
,但没有更新,也没有插入。
此外,请调用ps.getUpdateCount()
,执行后也返回1。
为什么结果是在 mysql java 驱动程序 1 中,而没有任何内容应该更新?谢谢。
为了清楚起见,表创建如下所示: CREATE TABLE IF NOT EXISTS VS (v VARCHAR(128) NOT NULL, PRIMARY KEY (v))
最佳答案
参见例如mysql_affected_rows()
:
For
INSERT ... ON DUPLICATE KEY UPDATE
statements, 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. If you specify theCLIENT_FOUND_ROWS
flag, the affected-rows value is 1 (not 0) if an existing row is set to its current values.
请参阅 JDBC connection property useAffectedRows
:
useAffectedRows
Don't set the CLIENT_FOUND_ROWS flag when connecting to the server (not JDBC-compliant, will break most applications that rely on "found" rows vs. "affected rows" for DML statements), but does cause "correct" update counts from "INSERT ... ON DUPLICATE KEY UPDATE" statements to be returned by the server.
Default: false
Since version: 5.1.7
因此,如果您希望更新计数的非标准行为仅对受影响行进行计数,而不是对找到行进行标准计数,则需要指定连接属性。
关于java - 执行 ON DUPLICATE KEY UPDATE v=v 时,MySql java 驱动程序返回 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52242152/
我是一名优秀的程序员,十分优秀!