MySql触发器,更新插入的另一个表

时间:2013-06-11 14:38:13

标签: mysql triggers sql-update

我已经,搜索过并阅读了很多关于这个问题的答案,但无法就如何做到这一点得到明确答案。

我的查询如下:

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。一个更通用的答案也会很好,也可能对其他人有帮助

1 个答案:

答案 0 :(得分:4)

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

在您的情况下,您可能希望将新插入的数量添加到现有库存中:使用NEW.Supply_Quantity(不要提及Product_Supply,这已由NEW关键字暗示

同样,您当然希望在您的情况下使用NEW.Product_ID

请注意,删除时触发器中不提供NEW,例如插入时触发器中的OLD