MySQL在插入触发器后更新不同表中的字段

时间:2015-06-17 18:37:36

标签: mysql

我正在尝试在我的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语句如下。 每当我运行insert语句时,它会将每一行更改为相同的数字,而不是从订购的数量中减去quantityInStock。

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

1 个答案:

答案 0 :(得分:0)

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

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