Есть вот такой код:
CREATE FUNCTION log_salary_access() RETURNS trigger AS $log_salary_access$
BEGIN
IF OLD.manager_id != current_user THEN
RAISE EXCEPTION 'access denied';
END IF;
RETURN NEW;
END;
$log_salary_access$ LANGUAGE plpgsql;
CREATE TRIGGER log_salary_access AFTER UPDATE ON employees
FOR EACH ROW EXECUTE PROCEDURE log_salary_access();
,
Но он не верен, так как после проверки было мне отписали, что это не будет работать правильно:
Вот так выглядит таблица:
Вот прямое управление ( посредственное) менеджера 100:
Вот непосредственное, то есть менеджер 100 управляет менеджерами, которые на рисунке выше и менеджер 100 управляет ( изменяет информацию о них) работниками, которые подчиняются менеджерам, которые на предыдущем рисунке. И вот список подчиненных гораздо больше, чем при посредственном управлении: