Trigger (DB)
Procedura del database eseguita automaticamente su INSERT/UPDATE/DELETE, con livelli BEFORE/AFTER e ROW/STATEMENT. Usi: audit log (chi ha cambiato cosa), denormalizzazione, colonne derivate, regole di business.
In PostgreSQL il trigger richiama una funzione (PL/pgSQL, PL/Python e altre); in MySQL il corpo è inline. Il rovescio della medaglia: i trigger nascondono la logica, e alla domanda «perché questa colonna cambia?» la risposta non sta nel codice applicativo ma nello schema del database. Trigger pesanti rallentano anche semplici UPDATE. L'alternativa moderna è CDC con un gestore lato applicazione, per disaccoppiare. Anti-pattern classico: un trigger che esegue un altro UPDATE che fa scattare un altro trigger, con esplosione ricorsiva. In breve: meglio evitarli per la logica di business, accettabili per le tracce di audit.