我正在尝试创建一个 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 ;
最佳答案
试试这个
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 workbbench 中没有错误
关于Mysql触发if语句更新第二张表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58244034/