mysql触发器更新行

时间:2015-12-06 17:57:16

标签: mysql triggers

我是mysql的新手,我正在尝试创建一个触发器。我想从一个表中获取一个新插入的值,并希望通过从该表中的值中减去该值来更新另一个表。

CREATE TRIGGER inventory_updated
  AFTER INSERT ON ORDERdetails
  for EACH ROW
  BEGIN
    UPDATE product_trial
      SET Quantity = Quantity-NEW.quantity
      where productid = new.ProductID;
  END

这会在第6行(更新查询)错误1064附近产生SQL语法错误。 请帮助。

1 个答案:

答案 0 :(得分:1)

在您的示例中,您不需要BEGIN-END,因为在for循环中执行了单个查询。如果您解决了语法错误,请删除它们。

如果您需要保留BEGIN-END,因为您的真实案例更复杂,那么您需要定义分隔符,如

DELIMITER \\
CREATE TRIGGER inventory_updated AFTER INSERT ON ORDERdetails for EACH ROW
BEGIN
    UPDATE product_trial SET Quantity = Quantity-NEW.quantity where productid = new.ProductID;
END \\