如果语句更新第二个表,则使用MySQL触发器

问题描述 投票:0回答:1

我正在尝试创建mysql触发器。这就是我要创建的内容,但是它以某种方式告诉我:“您的SQL语法有误;请查看与您的MySQL服务器版本相对应的手册,以获取在'A附近使用的正确语法每行”。

我在这里做错了什么?我试图用不同的方式命名它们,但似乎不起作用。

delimiter //
CREATE TRIGGER stock_update BEFORE UPDATE ON `stock` A
       FOR EACH ROW
       BEGIN
           IF NEW.`quantity` < 1 THEN //belongs to alias A
               UPDATE `ps_product` B
               SET B.`visibility` = 'none';
               WHERE id_product = OLD.id_product  //Should be the id_product of A alias
           ELSEIF NEW.quantity > 0 THEN
               UPDATE `ps_product` C
               SET C.`visibility` = 'both';
               WHERE id_product = OLD.id_product //Should be the id_product of A alias
           END IF;
       END;//
delimiter ;
mysql triggers
1个回答
0
投票

尝试这个

delimiter //
CREATE TRIGGER stock_update BEFORE UPDATE ON `stock` 
       FOR EACH ROW
       BEGIN
           IF NEW.`quantity` < 1 THEN #belongs to alias A
               UPDATE `ps_product` B
               SET B.`visibility` = 'none'
               WHERE id_product = OLD.id_product;  #Should be the id_product of A alias
           ELSEIF NEW.quantity > 0 THEN
               UPDATE `ps_product` C
               SET C.`visibility` = 'both'
               WHERE id_product = OLD.id_product; #//Should be the id_product of A alias
           END IF;
       END;//
delimiter ;

这在mysql工作台中没有显示错误

© www.soinside.com 2019 - 2024. All rights reserved.