mysql在批量插入中使用现有值和新值更新记录

ukdjmx9f  于 2021-07-26  发布在  Java
关注(0)|答案(2)|浏览(484)

我不知道如何处理下面的情况。
我有 product 表,我正在使用大容量插入将记录插入此表中。
例如

INSERT INTO product (p_id,p_quantity) VALUES(1,20),(2,10),(3,30);

现在我需要更新 p_quantity 如果 p_id 已存在。
e、 我的下一个批量插入查询可以是

INSERT INTO product (p_id,p_quantity) VALUES(2,15),(4,40);

所以,在这种情况下,我的产品 p_id = 2 应该更新 15 和总计 p_quantity 应该是 25 .
注意:我不能对任何一个键应用唯一的键约束,因为我有其他的场景。
谢谢您。

xkrw2x1b

xkrw2x1b1#

你在找什么 on duplicate key update :

INSERT INTO product (p_id, p_quantity)
    VALUES (2,15), (4,40)
    ON DUPLICATE UPDATE p_quantity = VALUES(p_quantity) + p_quantity;

这是假设 p_id 定义为 unique 或者 primary key .

wwtsj6pe

wwtsj6pe2#

如果p\u id已经存在,您需要更新它
更新产品集p\u数量=15,其中p\u id=2
然后将更新第二条记录。然后你可以插入第四条记录

相关问题