Mysql触发if语句更新第二张表

标签 mysql triggers

我正在尝试创建一个 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/

相关文章:

postgresql - postgres - 在事务提交之前触发

c# - 在xaml中的按钮点击触发器上设置按钮内容

mysql - 如何根据另一个查询结果进行查询

MySQL - 获取注册人数最多的年份

sql-server - 触发器是否有 THISROW 对象

mysql - 使用 php 触发多个 Mysql 数据库表

sql-server - while循环在触发器内循环遍历sql中表的所有列

mysql - JSON 元素到行或 JSON 到 MYSQL 中的表行(在 MySQL 中导出 JSON)

php - 使用 php 和 html 限制第二个下拉列表选项

php - mysql select缓存优化