Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySql java驱动程序在执行重复密钥更新v=v时返回1_Java_Mysql_Jdbc_On Duplicate Key - Fatal编程技术网

MySql java驱动程序在执行重复密钥更新v=v时返回1

MySql java驱动程序在执行重复密钥更新v=v时返回1,java,mysql,jdbc,on-duplicate-key,Java,Mysql,Jdbc,On Duplicate Key,我正在以两种方式执行相同的sql命令,即对重复键更新v=v执行 命令:在重复键更新v=v时插入VS(v)值('someValue') 两种方式产生不同的结果: 当使用本机mysql客户端并满足约束时,受影响的行数为0。消息:查询正常,0行受影响(0.14秒) 当使用mysql jdbc驱动程序(mysql-connector-java-8.0.11.jar)并使用int res=ps.executeUpdate(…))执行相同的命令时,结果是1 从java文档中,结果是SQL数据操作语言(DML

我正在以两种方式执行相同的sql命令,即对重复键更新v=v执行

命令:
在重复键更新v=v时插入VS(v)值('someValue')

两种方式产生不同的结果:

  • 当使用本机mysql客户端并满足约束时,受影响的行数为0。消息:
    查询正常,0行受影响(0.14秒)
  • 当使用mysql jdbc驱动程序(
    mysql-connector-java-8.0.11.jar
    )并使用
    int res=ps.executeUpdate(…)
    )执行相同的命令时,结果是1
  • 从java文档中,结果是SQL数据操作语言(DML)语句的行数
    ,但没有进行更新或插入

    另外,在执行之后调用ps.getUpdateCount()
    ,也会返回1

    为什么会出现mysql java驱动程序1,其中没有任何内容需要更新?谢谢

    为了清楚起见,表格创建如下所示:
    如果不存在,则创建表VS(v VARCHAR(128)NOT NULL,主键(v))

    参见示例:

    对于
    插入。。。在重复键更新
    语句中,如果将行作为新行插入,则每行受影响的行值为1;如果更新现有行,则每行受影响的行值为2;如果将现有行设置为其当前值,则每行受影响的行值为0如果指定
    客户端\u FOUND\u ROWS
    标志,则如果将现有行设置为其当前值,则受影响的行值为1(而不是0)。

    请参见JDBC
    useAffectedRows

    useAffectedRows

    在连接到服务器时不要设置CLIENT_FOUND_ROWS标志(不符合JDBC,将破坏大多数依赖于DML语句的“FOUND”行与“infected ROWS”的应用程序),但会导致服务器返回“INSERT…on DUPLICATE KEY update”语句中的“correct”更新计数

    默认值:false

    自版本:5.1.7起


    因此,如果希望更新计数的非标准行为仅对受影响的行计数,而不是对找到的行的标准计数,则需要指定connetion属性。

    什么是“未进行更新”?将列更新为其已具有的相同值仍然是一个更新。@andreas-在本机客户端上对重复键更新v=v运行
    时,结果消息为
    Query OK,0行受影响(0.14秒)
    ,表示未执行更新,这是合乎逻辑的:将列更新为已经存在的相同值没有任何意义。