Я пытаюсь создать триггер, который проверяет, ниже ли зарплата сотрудника по сравнению с его менеджером после обновления, и прерывает обновление, если оно происходит.
CREATE TRIGGER Employee_BeforeUpdate
BEFORE UPDATE ON Employee
FOR EACH ROW
BEGIN
IF EXISTS (
SELECT * FROM Manager, Manages
WHERE NEW.eid = Manages.eid
AND Manager.mid = Manages.mid
AND NEW.salary > Manager.salary)
THEN SIGNAL SQLSTATE '45000' SET message_text = 'Error message';
END IF;
END;
У меня синтаксическая ошибка (1064) рядом с '' в строке 9, и я не могу понять, почему.Также это правильный способ сделать триггер?
(MySql Версия 5.7.23-0ubuntu.18.04.1)
CREATE TABLE Employee (eid char(5), salary integer, primary key(eid));
CREATE TABLE Manager (mid char(5), salary integer, primary key(mid));
CREATE TABLE Manages (mid char(5), eid char(5) , primary key (mid,eid),
foreign key(mid) references Manager(mid),
foreign key(eid) references Employee(eid));