Хороший ответ от Роландо.
Кроме того - триггеры не должны использоваться для логики, потому что пара взаимосвязанных триггеров позже, вещи быстро запутаются. Хороший набор инструкций в хранимой процедуре или в процедуре на стороне клиента может более четко донести бизнес-логику, чем набор скрытой логики в базе данных. Существуют также ограничения на триггеры в отношении таблицы, из которой они запускаются - так что вы можете разделить свою логику в двух разных местах.
Кроме того, вы можете найти способы оптимизировать, в какой момент эти вычисления происходят на вашем сервере бизнес-логики, тогда как триггер будет срабатывать каждый раз. Вы обнаружите, что выключаете триггер, обновляете таблицу, а затем снова активируете триггер - что также означает, что вам нужно поместить логику триггера в этот код.
Кроме того - вам не нужно иметь всю логику в части бизнес-логики кода - вам может потребоваться обеспечить целостность таблицы с помощью хранимых процедур. Это может запустить транзакцию, выполнить несколько обновлений и заставить все откатиться, если что-то не получится. Таким образом, кто-то, глядя на базу данных, может видеть логику для вставки заказа, например. В современном мире это менее важно, поскольку веб-службы могут быть единственным интерфейсом доступа к БД; но в случае, когда несколько исполняемых файлов имеют доступ к БД, это может быть огромным.
Кроме того - у вас все равно будут транзакции - вы не будете выполнять свои триггеры без одного ... верно? Так что полезно знать, как начать транзакцию; сделать что-нибудь; а затем завершить транзакцию. Если вы увидите этот шаблон в своем коде, еще один фрагмент кода, который его использует, будет облегчать когнитивную нагрузку. Триггер, если вы помните, что он есть, заставит вас думать иначе для тех транзакций, на которые влияет триггер, особенно если задействованы другие таблицы, которые также могут иметь триггеры.
По сути, между регулярно запланированным заданием cron (или заданием агента базы данных) и хорошими хранимыми процедурами вы можете выполнить 99% того, что вам нужно. 1%; переосмыслить проект.