如果我的数据库存在操作,我想插入并更新。
我的表格'A'被定义为PRIMARY。
A int
B VARCHAR 20
TEST int
为什么此查询会返回'2 row(s)inserted'而不是1?
insert into test1 (A, B, TEST)
values(2, "A", 19)
on duplicate key update
A=values(A), B=values(B), TEST=values(TEST)
答案 0 :(得分:2)
使用ON DUPLICATE KEY UPDATE,如果将行作为新行插入,则每行的受影响行值为1;如果更新现有行,则每行受影响的行值为2.
http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html
这被认为可以区分现有行的全新行与更新