Триггеры в БД должны выполняться после "набора" операторов вставки

У меня есть таблица, в которой хранятся события.

Однако, поскольку система была разработана, события обычно записываются партиями. Я имею в виду, что набор событий (10 или около того) обычно записывается вместе, а не просто отдельные события.

Мы можем предположить, что: в таблице событий есть колонка "batch_no", поэтому мы знаем, какие события относятся к какой партии.

Вопрос: Я пытаюсь выполнить триггерную функцию каждый раз, когда партия событий завершает загрузку в таблицу. Однако проблема в том, что я не могу придумать, как триггер узнает об этом, а не просто вызывает функцию для каждой строки.

Решения, о которых я думал, включают в себя следующее: (a) определить триггер для каждой строки; (b) при условии, что вычислить count(select * from events, where NEW.batchNO = events.batchNO); отложить на некоторое время; снова вычислить тот же самый count, и если они равны, мы знаем, что партия закончила загрузку, и вызываем триггер.

Хотя, очевидно, что приведенное выше решение звучит сложно? Есть ли более удачное или простое решение? (Или, если нет, подскажите, как я могу реализовать то, что описал?)

8
задан Benjamin Crouzier 9 December 2016 в 13:38
поделиться