ORACLE Откат и триггер - PullRequest
       16

ORACLE Откат и триггер

5 голосов
/ 09 июля 2009

Сработает ли триггер после обновления при откате?

Сценарий: допустим, мы обновляем таблицу A, и триггер на таблице A запускается и обновляет другую таблицу B с подробностями. Если в таблице A произошел откат из-за какой-либо ошибки обработки, будет ли триггер вызывать откат таблицы B для изменения?

Ответы [ 2 ]

9 голосов
/ 09 июля 2009

Да, будет.

Инициирует работу в рамках транзакции оператора DML (либо запущенной вами явно, либо самим оператором DML)

При откате этой транзакции все изменения, сделанные триггерами, также откатываются.

Однако, если вы поставите

PRAGMA autonomous_transaction

в определении триггера, триггер запустит собственную транзакцию, которую вы должны зафиксировать до завершения триггера.

3 голосов
/ 10 июля 2009

Просто примечание - если вы определите триггер уровня оператора AFTER UPDATE (без предложения FOR EACH ROW), он не сработает, если оператор DML для таблицы завершится неудачно и откатится.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...