【问题标题】:mysql trigger to update rowmysql触发器更新行
【发布时间】:2015-12-06 17:57:16
【问题描述】:

我是 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 行附近出现 SQL 语法错误(更新查询)错误 1064。 请帮忙。

【问题讨论】:

  • 我认为重复的 CREATE 语句是一个错误 - 如果是,请编辑它。另外,能否请您包括您的两张桌子的表格布局? DESCRIBE 命令的输出将是想法。

标签: mysql triggers


【解决方案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 \\

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-01-17
    • 1970-01-01
    • 1970-01-01
    • 2013-01-02
    • 1970-01-01
    • 1970-01-01
    • 2023-03-11
    • 1970-01-01
    相关资源
    最近更新 更多