我试图在orderItem表(orderId, itemId, quantity)上创建一个触发器,以在每次插入时更新我的​​项目表(itemId, itemName, itemPrice, primaryImage, itemCategory, quantityInStock)上的字段'quantityInStock。到目前为止,这是我的触发器。

delimiter $$
drop trigger if exists quantityTrigger $$
create trigger quantityTrigger
after insert on orderItem
for each row begin
update item
set quantityInStock = quantityInStock - new.quantity;
end $$
delimiter ;


我用来测试触发器的插入语句如下。
每当我运行insert语句时,它会将每一行更改为相同的数字,而不是从订购的数量中减去quantityInStock。

insert into orderItem (orderId, itemId, quantity)
values ('21283', 42, 2);

最佳答案

将触发器主体中的UPDATE更改为:

 update item
 set quantityInStock = quantityInStock - new.quantity;
 WHERE itemId = new.itemId

10-08 08:36