Лучший способ кодировать большое количество DML от триггеров - PullRequest
2 голосов
/ 17 февраля 2011

Мне требуется большое количество DML для выполнения из нескольких триггеров. Это хорошая идея для каждого триггера вызвать частную процедуру, чтобы сделать это?

1 Ответ

5 голосов
/ 17 февраля 2011

Наличие большого количества логики в триггере, как правило, является плохой идеей, потому что это делает понимание системы и отслеживание потока данных исключительно трудным. Вам гораздо лучше иметь API (т.е. хранимые процедуры), которые выполняют операцию DML, а затем выполняют логику, которая в противном случае запускалась бы из триггера. Это, по крайней мере, укрепляет логику.

Если такой уровень рефакторинга невозможен, то каждый триггер вызывает процедуру (автономную или в пакете), которая выполняет фактическую манипуляцию (при необходимости, вызывая другие функции и процедуры, разумеется), является наиболее эффективным способом обработки логики в триггерах.

...