猿问

Go:sql RowsAffected with ON DUPLICATE KEY UPDATE

我很难找到一些合适的文档来描述 RowsAffected 值的语义,除此之外:

RowsAffected 返回受更新、插入或删除影响的行数。并非每个数据库或数据库驱动程序都支持这一点。

我正在使用带有 ON DUPLICATE KEY UPDATE 的查询,更新后 RowsAffected 的值为 2。是因为删除和插入减少到执行吗?

服务器是 MySql 服务器 Ver 8.0.12 for osx10.13 on x86_64


侃侃尔雅
浏览 90回答 1
1回答

千万里不及你

mysql_affected_rows()相当于 SQL 函数ROW_COUNT()。对于INSERT .. ON DUPLICATE KEY UPDATE文档状态:对于INSERT ... ON DUPLICATE KEY UPDATE语句,如果该行作为新行插入,则每行的受影响行值为 1,如果更新现有行,则为 2,如果现有行设置为其当前值,则为 0。如果您指定CLIENT_FOUND_ROWS标志,并且现有行设置为其当前值,则受影响的行值为 1(而不是 0)。
随时随地看视频慕课网APP

相关分类

Go
我要回答