MySql触发器:插入时更新另一张表

6
I've already, searched and read, many answers about this issue , but couldn't get a clear answer on how to do this.
我的问题是:
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 ;

感谢您的提前帮助。
附言:更通用的答案也会很好,并且可能对其他人有帮助。

您提供有关错误的快速描述将会很有帮助。 - RandomSeed
我发现它找不到你后来告诉我要用NEW.ColumnName替换的列。 - Mitsosp
1个回答

4

在给定表的触发器内部,对该表字段的所有引用都必须以NEW.OLD.为前缀,分别指代更改后或更改前的该字段值。

在您的情况下,您可能希望将新插入的数量添加到现有库存中:使用NEW.Supply_Quantity(不要提及Product_Supply,因为NEW关键字已经包含了它)。

同样,您肯定想在条件中使用NEW.Product_ID

请注意,在删除触发器中NEW不可用,就像在插入触发器中OLD不可用一样。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接