我有两个表库存和订单,我试图使触发器工作,以便在订单中放入订单后,数量从库存数量字段中取出。
DELIMITER $$
CREATE TRIGGER stock_update
AFTER INSERT ON order
FOR EACH ROW
BEGIN
SET @quantity = NEW.quantity
UPDATE stock s;
SET s.quantity = OLD.quantity - NEW.quantity
FROM stock s, order o
WHERE s.ID_stock = o.ID_stock;
END;
$$
DELIMITER;
但我只是得到错误号1064
答案 0 :(得分:0)
我不太确定它会起作用,因为我需要表定义才能测试它。
在每种情况下,您都应删除FROM
子句以及最后一行DELIMITER;
。您
也应该用分号结束行SET @quantity = NEW.quantity
。
DELIMITER $$
CREATE TRIGGER stock_update
AFTER INSERT ON order FOR EACH ROW
BEGIN
UPDATE stock s;
SET s.quantity = OLD.quantity - NEW.quantity
WHERE s.ID_stock = NEW.ID_stock;
END;
$$
答案 1 :(得分:0)
有几个问题:
试试这个
DELIMITER $$
CREATE TRIGGER stock_update
AFTER INSERT ON `order`
FOR EACH ROW
BEGIN
UPDATE stock s
SET s.quantity = s.quantity - NEW.quantity
WHERE s.ID_stock = NEW.ID_stock;
END $$
DELIMITER ;