这是一个创建于 3020 天前的主题,其中的信息可能已经有所发展或是发生改变。
mysql>INSERT INTO table (a,b,c) VALUES (1,2,3) ON DUPLICATE KEY UPDATE c=c+1;
mysql>UPDATE table SET c=c+1 WHERE a=1;
如果行作为新记录被插入,则受影响行的值为 1 ;如果原有的记录被更新,则受影响行的值为 2 。
明明只有原有的记录被更新了,为什么受影响的行数会是 2 呢?
1 条回复 • 2016-06-14 21:38:59 +08:00
|
|
1
Infernalzero 2016-06-14 21:38:59 +08:00 1
insert 一次 update 一次, affected-rows 为 2 还是好理解的吧 如果也是 1 的话如何知道本次执行是插入了新的数据还是更新了原有的数据? 倒是 java 的 mysql-connector 有个相关的坑,如果连接参数不加 useAffectedRows=true 的话返回值始终是匹配到的行而不是受影响的行...
|