参见例如
mysql_affected_rows()
:
为了
INSERT ... ON DUPLICATE KEY UPDATE
语句,如果行作为新行插入,则每行受影响的行值为1;如果现有行被更新,则每行受影响的行值为2;如果现有行被设置为其当前值,则每行受影响的行值为0。
如果您指定
CLIENT_FOUND_ROWS
标志,如果将现有行设置为其当前值,则受影响的行值为1(而不是0)。
见JDBC
connection property
useAffectedRows
:
使用受影响的对象
在连接到服务器时,不要设置客户机的“找到的行”标志(不符合JDBC,会破坏大多数依赖于“找到的”行和DML语句的“受影响的行”的应用程序),但会导致“插入”中的“正确”更新计数。在服务器返回的“重复键更新”语句上。
默认值:假
自版本:5.1.7
因此,如果希望更新计数的非标准行为仅为计数
影响
行,而不是
建立
行,您需要指定连接属性。