Как часть неприятного хака, который меня попросили сделать, мне нужно изменить триггер для обновления связанных записей в таблице, но я получаю ошибку мутирующей таблицы.
Данные выглядят так:
roster table
Id person_id route_id active_ind
1 1 1 Y
2 2 1 Y
3 3 2 Y
4 4 2 Y
Если для параметра active_ind person_id = 1 установлено значение N, мне нужно также установить для параметра active_id другого человека, связанного с тем же маршрутом (route_id = 1), значение N.
Существует текущий триггер (после обновления), который обновляет другие таблицы, связанные с маршрутом, и работает нормально. Когда я добавляю следующий код, я получаю ошибку изменяющейся таблицы:
update roster r
set r.active_ind = 'N'
where r.route_id = :new.route_id
and r.id != :new.id
and r.active_ind = 'Y';
Это связано с тем, что я пытаюсь обновить таблицу в процессе обновления. Кто-нибудь может предложить решение?