2
CREATE TRIGGER Supervisors
BEFORE INSERT OR UPDATE ON Employee
FOR EACH ROW
WHEN(new.EmpRank = 0 OR new.EmpRank = 1)
DECLARE
    supervisorRank INT;
BEGIN
    SELECT EmpRank INTO supervisorRank
    FROM Employee
    WHERE new.SupervisorID = Employee.Id;

    IF((new.SupervisorID IS NULL) OR (supervisorRank - new.EmpRank != 1)) THEN
        RAISE_APPLICATION_ERROR(-20004, 'Cannot insert/update record into table Employee. Invalid supervisor.');
    END IF;
END;

上記は、クエリを実行するたびにトリガーです。トリガーが無効であり、再検証に失敗したというエラーが表示されます

4

1 に答える 1