如何在执行INSERT ON DUPLICATE KEY UPDATE时返回插入和替换的总结果

时间:2013-10-11 13:54:56

标签: mysql

我有一个包含INSERT的过程..... ON DUPLICATE KEY UPDATE。

如果在MySQL中有办法确定插入的总行数和替换的总行数?

由于

2 个答案:

答案 0 :(得分:1)

您可以在查询后使用http://dev.mysql.com/doc/refman/5.0/en/mysql-affected-rows.html

  

对于INSERT ... ON DUPLICATE KEY UPDATE语句,受影响的行   如果行作为新行插入,则值为1;如果存在,则为2   行已更新

答案 1 :(得分:0)

您可以使用"记录"来计算和"重复"。 Records是受影响的总行数。 Duplicates是更新次数。所以Records - Duplicates是插入的行数。

例如:

mysql> insert into your_table (...) 
    -> select ... from your_other_table 
    -> on duplicate key update ...;
Query OK, 3 rows affected (0.00 sec)
Records: 2  Duplicates: 1  Warnings: 0

这意味着插入了1个新行,并更新了1个现有行。