以往做法:循环select表中的user记录是否存在,存在则使用update;不存在则使用insert。
做法弊端:每处理一条记录需要操作两次数据库(select、update/insert)
优化做法:使用insert语句搭配 on duplicate key update使用。
做法注意:比如上面的需求,需要用户user唯一,就是total_score表中,每个用户只存在一个记录。给user_id设为unique
insert into total_score(
user_id,
score,
create_at,
update_at
) values (
101,
10,
now(),
now()
) on duplicate key update score=score+10,update_at=now();
mysql使用on duplicate key update批量更新数据
原文:https://www.cnblogs.com/luoguixin/p/14954796.html