我已经在mysqlworkbench中编写了一个触发器,它应该在将新行添加到订单表后更新产品库存(我的代码是荷兰语,这就是我解释这个的原因)但它不起作用,我尝试应用它mysqlworkbench说它的sql代码包含错误。
这是触发器:
CREATE DEFINER = CURRENT_USER TRIGGER `winkel`.`bestelregel_AFTER_INSERT` AFTER INSERT ON `bestelregel` FOR EACH ROW
BEGIN
if Product.productnr = NEW.productnr
then
Update Product
Set Hoeveelheid = (Hoeveelheid - NEW.aantal)
Where productnr = NEW.productnr;
end if;
END
答案 0 :(得分:0)
Product
声明中的if
是什么?毫无疑问,这会产生语法错误,因为它无法识别。
我认为你打算让身体变得简单:
Update Product p.
Set Hoeveelheid = (Hoeveelheid - NEW.aantal)
Where p.productnr = NEW.productnr;
if
无关紧要。
我希望完整版看起来像:
DELIMITER $$
CREATE DEFINER = CURRENT_USER TRIGGER `winkel`.`bestelregel_AFTER_INSERT`
AFTER INSERT ON `bestelregel` FOR EACH ROW
BEGIN
UPDATE Product p
SET Hoeveelheid = (Hoeveelheid - NEW.aantal)
WHERE p.productnr = NEW.productnr;
END $$
DELIMITER ;
答案 1 :(得分:0)
你有分隔符问题。你需要
DELIMITER $$
CREATE ..... TRIGGER ...
BEGIN
END$$
DELIMITER ;