我正在使用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;
有人会知道我在这里做错了什么吗?我不确定为什么我会收到这个错误,因为我在函数调用结束时有一个冒号。
答案 0 :(得分:0)
raise_application_error是Oracle的一个东西,它在mysql中不存在。因此,mysql将其解释为用户变量名,并期望您使用:=运算符为其分配值,因此关于错误冒号的错误消息。
在mysql中使用signal command引发异常。
您可能还需要查看delimiter命令。