0

addproduct、sellproduct、reportfoundproduct、productbalanceを呼び出す4つのテーブルを取得しました

これらの3つのテーブル(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を変更したいだけの場合の解決方法は?

plsヘルプ...ありがとう

4

1 に答える 1

0

新しい疑似テーブルを使用する必要があるため、新しい行の情報のみを使用します

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 に答える