我正在尝试执行sql命令来更新行,并将行与匹配的数据组合在一起。
作为我要尝试的示例,我有一个下表,如下所示。我想将所有具有userEmail = user@user.com的记录更新为admin@example.com。如果我尝试简单更新,则会遇到重复的键错误。
我可以通过添加某种计数器作为代理键来解决此问题,但如果可能的话,我宁愿避免使用该选项。
此外,如果可能的话,我想结合第二条记录的数量。
我可以使用哪种操作?
pandas
答案 0 :(得分:2)
我建议两个步骤:
insert into original (userEmail, productId, usItemId, quantity, timestamp)
select 'admin@example.com', productId, usItemId, quantity, timestamp
from original o
where o.userEmail = 'user@user.com'
on duplicate key update quantity = values(quantity) + quantity;
delete from original
where o.userEmail = 'user@user.com';