我有4个表调用addproduct,sellproduct,reportfoundproduct,productbalance
我希望在将数据插入这三个表(addproduct,sellproduct,reportfoundproduct)之后触发更新产品平衡表中库存的余额数量
下面的是我在salesproduct表中的触发器:
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,该如何解决?
请帮助......谢谢
答案 0 :(得分:0)
您需要使用新的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$$