admin

MYSQL插入和更新的记录数

sql

我有以下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

谢谢你的帮助

问候

基兰


阅读 162

收藏
2021-06-07

共1个答案

admin

我不知道从诊断信息中获取此信息的好方法。

在任何情况下,假设你已经控制,这样只有行 刚刚 INSERT编在表中(或将只查询),这可以在事后被简单地检索:

SELECT COUNT(*) as Inserted, SUM(count - 1) as Updated
FROM my_counts;

(请注意,正如我的SQLFiddle示例中所包括的,这些数字实际上可以从基础数据中预测出来)。

2021-06-07