mysql - SQL查询给出下面提到的错误

标签 mysql sql syntax-error

我有一个sql查询

CREATE DEFINER=`root`@`localhost` TRIGGER `trigger_vacation_mode` AFTER UPDATE ON `oc_ms_seller`
FOR EACH ROW
BEGIN
 if NEW.vacation_mode <> OLD.vacation_mode THEN

    UPDATE `oc_product` AS p
    SET p.date_modified = NOW()
    WHERE p.product_id IN (SELECT DISTINCT product_id FROM `oc_ms_seller` AS ms join
    `oc_ms_product` AS mp ON ms.seller_id = mp.seller_id)

 END IF;
END;

执行的时候报错

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'END IF
END' at line 11

最佳答案

您需要覆盖默认分隔符 (;)

DELIMITER //

CREATE DEFINER=`root`@`localhost` TRIGGER `trigger_vacation_mode` AFTER UPDATE ON `oc_ms_seller`
FOR EACH ROW
BEGIN
 if NEW.vacation_mode <> OLD.vacation_mode THEN

    UPDATE `oc_product` AS p
    SET p.date_modified = NOW()
    WHERE p.product_id IN (SELECT DISTINCT product_id FROM `oc_ms_seller` AS ms join
    `oc_ms_product` AS mp ON ms.seller_id = mp.seller_id);

 END IF;
END//

DELIMITER ;

DELIMITER 语句将标准分隔符从分号 (;) 更改为另一个(此处为 //)。

关于mysql - SQL查询给出下面提到的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41545965/

相关文章:

java - 错误计算 2 个日期与 joda 时间之间的差异天数?

sql - 优化sql查询

python-3.x - 如何为模型准备测试集形状。使用 keras 和 tensorflow 进行评估?

MYSQL 更新基于行索引等于另一个表中的 ID

php - 从 AppEngine 中的 Laravel PHP 连接时出现 SQL 错误 'No such file or directory'

sql - 天数不可用

mysql - MySQL 中的左连接没有给我预期的结果

php - PHP中的未定义索引_非复合名称

python - 在Tweepy中遇到Python打印语法错误

iphone - 将 iPhone 应用程序链接到 Mysql 数据库我可以知道下载大小吗?