Триггеры позволяют выполнять функцию в базе данных при возникновении определенных событий (например, вставка в таблицу).
Я не могу специально комментировать mysql.
Меры предосторожности: Триггеры могут быть очень заманчивыми, когда вы впервые начинаете использовать их, они кажутся волшебной пулей для всех видов проблем. Но они заставляют происходить «волшебные» вещи, если вы не знаете базу данных наизнанку, может показаться, что происходят действительно странные вещи (такие как вставки в другие таблицы, изменение входных данных и т. Д.). Перед реализацией вещей в качестве триггера я бы серьезно подумал о том, чтобы вместо этого принудительно использовать API вокруг схемы (желательно в базе данных, но снаружи, если вы не можете).
Некоторые вещи, которые я бы по-прежнему использовал для триггеров
- Отслеживание полей "date_created" и "date_last_edited"
- Вставка идентификаторов (в оракуле, где нет поля автоматического идентификатора)
- Ведение истории изменений
Вещи, которые вы не хотели бы использовать триггеры для
- бизнес-правила / логика
- все, что подключается за пределами базы данных (например, вызов веб-службы)
- Контроль доступа
- Все, что не является транзакционным (все, что вы делаете в триггере, ДОЛЖНО иметь возможность отката с транзакцией)