2013-06-11 67 views
6

我已經查過並閱讀了許多有關此問題的答案,但無法就如何執行此操作獲得明確答案。MySql觸發器,在插入時更新另一個表格

我的查詢如下:

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 ; 

在此先感謝。

P.S.更多通用答案也不錯,可能對其他人也有幫助

+0

您正在獲取的錯誤的快速說明會有所幫助。 – RandomSeed

+0

我越來越無法找到你後來告訴我用NEW取代的列。列名 – Mitsosp

回答

4

從給定表格的觸發器中,對該表格字段的所有引用都必須以NEW.OLD.作爲前綴,它們分別指向此字段在更改之後或之前的值。

在你的情況,你可能希望新插入的量添加到您現有的股票:使用NEW.Supply_Quantity(不提Product_Supply,這已經由NEW關鍵字暗示)。

同樣,你一定要在你的情況下使用NEW.Product_ID

請注意,NEW在刪除觸發器中不可用,例如插入時觸發器中的OLD

+0

不錯,這就是我需要的,非常感謝。 – Mitsosp

相關問題