Тригерите ви позволяват да изпълнявате функция в базата данни, когато се случат определени събития (напр. вмъкване в таблица).
Не мога да коментирам конкретно mysql.
Предпазна мярка:Тригерите могат да бъдат много примамливи, когато започнете да ги използвате, те изглеждат като вълшебен куршум за всякакви проблеми. Но те правят "магически" неща да се случват, ако не познавате базата данни отвътре, може да изглежда, че се случват наистина странни неща (като вмъквания в други таблици, промяна на входните данни и т.н.). Преди да внедря нещата като тригер, сериозно бих обмислил вместо това да наложа използването на API около схемата (за предпочитане в базата данни, но извън нея, ако не можете).
За някои неща все още бих използвал тригери
- Проследяване на полетата „date_created“ и „date_last_edited“
- Вмъкване на „ID“ (в Oracle, където няма поле за автоматичен идентификационен номер)
- Запазване на историята на промените
Неща, за които не бихте искали да използвате тригери
- бизнес правила/логика
- всичко, което се свързва извън базата данни (напр. повикване на уеб услуга)
- Контрол на достъпа
- Всичко, което не е транзакционно (всичко, което правите в тригера ТРЯБВА да може да се върне обратно с транзакцията)