0

我有 4 个表,分别调用 addproduct、sellproduct、reportfoundproduct、productbalance

在将数据插入这三个表(addproduct,sellproduct,reportfoundproduct)后,我想触发更新productbalance表中库存的余额数量

下面是我在 sellproduct 表中的触发器:

CREATE
DEFINER=`root`@`localhost`
TRIGGER `user`.`bad1`
AFTER INSERT ON `user`.`sellproduct`
FOR EACH ROW
BEGIN

UPDATE productbalance 
SET Quantity_OnHand =(Quantity_OnHand- (select (sell_Quantity) from (select * from sellproduct) as temp3)) 
WHERE Product_ID= productbalance.Product_ID ; 

 END$$

其意思是数量余额=添加产品-销售产品

但是当触发器执行时,它会改变我的整行数据 - 销售产品......

如果我只想更改价值发生变化的产品 ID,如何解决?

请帮助...谢谢

4

1 回答 1

0

您需要使用 NEW psuedo 表,因此您只使用新行中的信息

CREATE DEFINER=`root`@`localhost` TRIGGER `user`.`bad1`
AFTER INSERT ON `user`.`sellproduct` FOR EACH ROW
BEGIN

UPDATE productbalance 
SET Quantity_OnHand = Quantity_OnHand - NEW.sell_Quantity
WHERE Product_ID = NEW.Product_ID ; 

END$$
于 2012-01-02T09:17:30.850 回答