gpt4 book ai didi

mysql - 如果特定列存在字段,如何更新

转载 作者:行者123 更新时间:2023-11-29 05:47:19 24 4
gpt4 key购买 nike

我的请求有问题,我必须更新我现有的字段而不是插入,因为它会被复制,我已经知道 ON DUPLICATE KEY UPDATE 或 REPLACE 但它不起作用目标是更新我的产品数量而不是插入一些。我尝试通过触发器,但它也不起作用,你有解决我的问题的方法吗?

INSERT INTO cart(product_id, quantity) VALUES (4, quantity +1 )

但如果该产品已经存在,它会向我添加一行,我希望它能自动检测到它并更新它,因为我知道我的字段不是键

UPDATE cart SET quantity = quantity+1 WHERE id= id

这是我的触发器:

BEGIN
IF EXISTS (SELECT product_id FROM cart WHERE product_id = NEW.product_id)
THEN
UPDATE cart SET quantity = NEW.quantity WHERE id = NEW.user_id;
ELSE
INSERT INTO cart(product_id, quantity) VALUES (NEW.product_id, NEW.quantity);
END IF;

结束

这是一个问题:两行相同,对于这个例子,我希望一行像 id 1

Image expalin problem

非常感谢,对不起我的英语和表达

最佳答案

不需要触发器。您可以使用 MySQL insert ... on duplicate key syntax .

insert into cart(product_id, quantity) 
values (4, 1)
on duplicate key update quantity = quantity + values(quantity)

为此,您需要对列 product_id 进行唯一约束(或主键约束)。

使用这种语法,如果一条记录已经存在,其 product_id 与您尝试插入的记录相同,则会执行 update,添加新的数量 到现有记录。

关于mysql - 如果特定列存在字段,如何更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58645955/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com