最佳答案
不,没有.
原文链接:https://www.f2er.com/mysql/532027.htmlINSERT ON DUPLICATE KEY UPDATE将定位记录并更新它,就像简单的UPDATE一样.
实际上,这只是一个UPDATE,如果UPDATE失败,则后面是INSERT.
INSERT ON DUPLICATE KEY UPDATE可以是分组更新的更快替代方法(当您的源表的每个键包含多个记录,并且希望每个记录增加一次目标表时).
如果每个键的值很少,则此查询:
INSERT
INTO t_target
SELECT target,cnt
FROM t_sparse d
ON DUPLICATE KEY UPDATE
t_target.cnt = t_target.cnt + d.cnt
将比这更有效:
INSERT
INTO t_target
SELECT target,cnt
FROM (
SELECT target,SUM(cnt) AS cnt
FROM t_sparse di
GROUP BY
target
) d
ON DUPLICATE KEY UPDATE
t_target.cnt = t_target.cnt + d.cnt