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

MySQL 5.7 Create Trigger Syntax Error?

我一直在尝试在数据库 table(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 并尝试使用它创建触发器时却不会!?

感谢您的帮助

我没有意识到,默认情况下,phpmyadmin 添加了一个 ; 分隔符,它打破了 ; 用于结束 BEGIN END 块中的语句。