2016-04-30 31 views
0

私はMySQLのワークベンチでの作業と簡単なトリガー文を作成しようとしています:「構文エラー:不足しているコロン」のMySQL Workbenchのトリガー構文

CREATE DEFINER = CURRENT_USER 
TRIGGER `School_database`.`Faculty_BEFORE_INSERT` 
BEFORE INSERT ON `Faculty` 
FOR EACH ROW 
BEGIN 
    IF (inserted.salary < 25000 OR inserted.salary > 85000) 
    THEN 
    raise_application_error(-20001, 'Faculty salary must be between $25,000 and $85,000'); 
    END IF; 
END; 

何らかの理由で、私はRAISE_APPLICATION_ERRORでエラーが出ます

誰も私がここで間違って何を考えているだろうか?なぜ私は関数呼び出しの最後にコロンがあるので、私はそのエラーを取得しているのかわかりません。

答えて

0

raise_application_errorはOracleのもので、mysqlには存在しません。したがって、mysqlはそれをユーザ変数名として解釈し、:=演算子を使用して値を代入することを期待しています。したがって、誤ったコロンに関するエラーメッセージです。

mysqlでは、signal commandを使用して例外を発生させます。

おそらく、delimiterコマンドも参照する必要があります。