6

私はすでにこの問題について多くの回答を検索して読んでいますが、これを行う方法について明確な回答を得ることができませんでした。

私のクエリは次のとおりです。

DELIMITER //
CREATE TRIGGER `Stock_Update` AFTER INSERT ON `Store_db`.`Product_Supply` FOR EACH ROW
BEGIN
    UPDATE `Store_db`.`Stock` AS `ST`
    SET `ST`.`Stock_Quantity` = `ST`.`Stock_Quantity` + `Product_Supply`.`Supply_Quantity`
    WHERE `ST`.`Product_ID` = `Product_Supply`.`Product_ID`;
END//
DELIMITER ;

前もって感謝します。

PSより一般的な回答もいいでしょうし、他の人にも役立つかもしれません

4

1 に答える 1

4

特定のテーブルのトリガー内から、このテーブルのフィールドへのすべての参照の前に または のいずれNEW.かを付ける必要がありますOLD.。これらはそれぞれ、変更後または変更前のこのフィールドの値を参照します。

あなたの場合、おそらく、新しく挿入された数量を既存の在庫に追加したいと思うでしょう: use NEW.Supply_Quantity(言及しないでください、これはキーワードProduct_Supplyによって既に暗示されています)NEW

同様に、あなたは確かNEW.Product_IDにあなたの状態で使いたいです.

挿入時のトリガーのNEWように、削除時のトリガーでは使用できないことに注意してください。OLD

于 2013-06-11T15:01:58.687 に答える