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後出現了分號而出現語法錯誤。命令 - 它認爲那些是分隔符 –