Сначала я начну свой ответ с определения trigger : trigger - это хранимая процедура, которая запускается при добавлении, изменении или удалении строки.
Триггеры могут запускаться ДО действие предпринято или ПОСЛЕ действие принято.
BEFORE
триггеры обычно используются, когда требуется проверка перед принятиемизменение.Они запускаются до внесения каких-либо изменений в базу данных.Допустим, у вас есть база данных для банка.У вас есть стол accounts
и стол transactions
.Если пользователь снимает средства со своей учетной записи, вы должны убедиться, что у пользователя достаточно средств на его счету для вывода средств.Триггер BEFORE
позволит сделать это и предотвратит вставку строки в transactions
, если недостаточно баланса в accounts
. Триггеры
AFTER
обычно используются, когда требуется информацияобновляется в отдельной таблице из-за изменений.Они запускаются после внесения изменений в базу данных (не обязательно зафиксированных).Давайте вернемся к нашему заднему примеру.После успешной транзакции вы бы хотели обновить balance
в таблице accounts
.Триггер AFTER
позволит вам сделать именно это.