2016-04-30 2 views
0

Я работаю с MySQL верстаке и пытается создать простой триггер заявление:MySQL Workbench Trigger Синтаксис

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, чтобы создать исключение.

Возможно, вам также придется взглянуть на команду разделителя.