私はデータベーステーブル(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をエクスポートし、GUIではなくSQLを使用してテーブルを作成しようとしました。これは私が独特だと思ったものではありませんでした。 PHPMyAdminが自動的にトリガーのデフォルトの区切り文字を ';'に設定していたことが原因で、 'SET ..の後にセミコロンのためにトリガーを作成しようとしたときに構文エラーが発生しました。 'コマンド(s) - それは区切り文字だと思った –