我试图在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