Вопрос по plsql, oracle, mutating-table – Как избежать ошибки ORA-04091 в триггере

1

У меня есть триггер после обновления (триггер A) в таблице A, который может вносить изменения в таблицу B.

У меня также есть триггер после обновления (Trigger B) для таблицы B, который не вносит изменений, но запрашивает таблицу A для некоторой проверки работоспособности при денормализации.

Таким образом, Trigger B может срабатывать одним из двух способов:

if I'm directly updating table B, or if I update table A and Trigger A fires, causing an update to table B.

В случае 2 я получаю ORA-04091: имя таблицы меняется, триггер / функция может не увидеть его ошибку. Это кажется правильным.

Я хочу проверить в триггере B, находится ли таблица A в «плохом состоянии»; и досрочный выход (проверки работоспособности в этом случае не требуется).

Каков наилучший способ проверить это в моем триггере? Просто добавить обработчик исключения, который проглотит исключение? Есть ли что-нибудь более изящное?

Ваш Ответ

0   ответов

Похожие вопросы