Déclencheur (base de données)
Une procédure stockée qui s'exécute d'elle-même à chaque INSERT, UPDATE ou DELETE. BEFORE ou AFTER, au niveau de la ligne ou de l'instruction. Usages : journaux d'audit (qui a changé quoi), dénormalisation, colonnes dérivées, règles métier.
PostgreSQL : le trigger appelle une fonction (PL/pgSQL, PL/Python, etc.). MySQL : corps de trigger en ligne. Le revers : les triggers cachent la logique — « pourquoi cette colonne change-t-elle ? » — la réponse n'est pas dans le code applicatif, il faut aller fouiller le schéma de la base. Côté performances, un trigger lourd rend lents des UPDATE pourtant anodins. Alternative moderne : CDC + un gestionnaire côté application, pour découpler. L'antipattern classique : un trigger qui lance un UPDATE qui déclenche un autre trigger — explosion récursive. Bonne pratique actuelle : éviter les triggers pour la logique métier, les garder pour les pistes d'audit.