我是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语法错误。 请帮助。
答案 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 \\