我有以下SQL陈述
INSERT INTO my_counts (type,code,count) SELECT type,id ,1 from my_data WHERE user_id=10 ON DUPLICATE KEY UPDATE count = count + 1;
这里的 type,code 是一个复合主键。
您能否让我知道如何确定插入的记录数以及分别更新的记录数?
我知道 SELECT ROW_COUNT() 给出了受影响的行(2用于更新,1用于插入)。但是如何分别找出
1) the number of rows updated 2) the number of rows inserted
谢谢你的帮助
问候
基兰
我不知道从诊断信息中获取此信息的好方法。
在任何情况下,假设你已经控制,这样只有行 刚刚 INSERT编在表中(或将只查询),这可以在事后被简单地检索:
INSERT
SELECT COUNT(*) as Inserted, SUM(count - 1) as Updated FROM my_counts;
(请注意,正如我的SQLFiddle示例中所包括的,这些数字实际上可以从基础数据中预测出来)。