MySQL 5.7创建触发器语法错误?

时间:2017-01-30 12:44:54

标签: mysql sql triggers phpmyadmin mysql-5.7

我一直试图在数据库表(MySQL v 5.7)上创建一个简单的BEFORE INSERT触发器,但我一直收到一个模糊的"#1064 ......语法错误"消息无法帮助解决问题。

这是SQL:

CREATE OR REPLACE TRIGGER `CREATE_QUIZ_TRIG` BEFORE INSERT ON `quiz`
 FOR EACH ROW BEGIN
    SET NEW.ACTIVE = UPPER(NEW.ACTIVE);
    SET NEW.CREATED = NOW();
 END
/

我尝试做的只是将列强制为大写,然后插入当前日期&进入时间戳列的时间。我一直在关注以下文档:

https://dev.mysql.com/doc/refman/5.7/en/trigger-syntax.html

并且意识到对于多语句表达式,我必须在触发器创建开始时重新定义分隔符,但是相同的#1064'发生错误。

这更加令人困惑,因为当我使用phpmyadmin的界面创建相同的触发器时,它工作正常 - 但是当我导出生成的SQL并尝试使用它创建触发器时,我不会这样做!

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

我没有意识到,默认情况下,phpmyadmin会添加一个;分隔符,该分隔符会破坏用于结束;块内语句的BEGIN END