Phpmyadmin在' END'附近创建触发器语法错误

时间:2016-06-03 18:39:24

标签: mysql database triggers phpmyadmin

我试图在PhpMyAdmin中创建一个触发器,每次尝试创建它时我都会遇到同样的错误。错误是:

  

#1064 - 您的SQL语法出错;检查与您的MySQL服务器版本对应的手册,以便在' END'附近使用正确的语法。第5行

我似乎无法让它工作,我在这个主题上看到的所有问题都指向不将分隔符设置为问题,但我已经设置好了。任何帮助都会很好,我已经创建了一个非常简单的触发器来测试它,代码如下:

DELIMITER ;
DROP TRIGGER IF EXISTS `triggerName`;
DELIMITER $$
CREATE TRIGGER `triggerName` AFTER UPDATE ON `test`
    FOR EACH ROW
        BEGIN
            SELECT * FROM `test_2` WHERE `id` = 1
        END $$
DELIMITER ;

2 个答案:

答案 0 :(得分:0)

;之后和END结束时您遗失SELECT

DELIMITER $$
CREATE TRIGGER `triggerName` AFTER UPDATE ON `test`
    FOR EACH ROW
        BEGIN
            SELECT * FROM `test_2` WHERE `id` = 1;
        END; $$
DELIMITER ;

答案 1 :(得分:0)

触发器主体的最后一个END应该使用您声明的DELIMITER,例如:END$$

BEGIN和END中的每个语句都可以(必须)以;结尾,以不告诉MySQL您的TRIGGER语句已结束。

因此,在第7行以;结尾,并在第8行的END$$之间删除空格。