0
我一直在尝试在数据库表(MySQL v 5.7)上创建一个简单的BEFORE INSERT
触发器,但我一直收到一个含糊不清的“#1064 ...语法错误”消息,这无助于解决问题。MySQL 5.7创建触发语法错误?
这里的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并尝试使用该触发器创建触发器!
感谢所有帮助
但我不会导出生成的SQL并尝试使用它创建触发器! - 这是什么意思? –
PhpMyAdmin允许您使用它的GUI输出用于创建表的SQL。使用此GUI创建表时,触发器已成功创建 - 所以我导出了它生成的SQL,并尝试使用该SQL而不是GUI创建表;这不起作用,我认为这是奇怪的。 原来,问题是PHPMyAdmin自动将触发器的默认分隔符设置为';',这就是为什么当我尝试创建触发器时由于SET后出现了分号而出现语法错误。命令 - 它认为那些是分隔符 –