MySQL Workbench触发器语法

时间:2016-04-30 23:36:25

标签: mysql sql triggers

我正在使用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中收到错误:&#34;语法错误:缺少冒号&#34;

有人会知道我在这里做错了什么吗?我不确定为什么我会收到这个错误,因为我在函数调用结束时有一个冒号。

1 个答案:

答案 0 :(得分:0)

raise_application_error是Oracle的一个东西,它在mysql中不存在。因此,mysql将其解释为用户变量名,并期望您使用:=运算符为其分配值,因此关于错误冒号的错误消息。

在mysql中使用signal command引发异常。

您可能还需要查看delimiter命令。