2016-04-30 70 views
0

我与MySQL工作台的工作,并试图创建一个简单的触发声明:MySQL工作台触发语法

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来引发异常。

您可能还需要查看分隔符命令。