Mysql
 sql >> Database >  >> RDS >> Mysql

Configurazione dei trigger MySQL

I trigger consentono di eseguire una funzione nel database quando si verificano determinati eventi (ad esempio, un inserimento in una tabella).

Non posso commentare specificamente MySQL.

Precauzione:i trigger possono essere molto allettanti, quando inizi a usarli per la prima volta sembrano una bacchetta magica per tutti i tipi di problemi. Ma fanno accadere cose "magiche", se non conosci il database alla perfezione, può sembrare che accadano cose davvero strane (come inserimenti in altre tabelle, modifica dei dati di input, ecc.). Prima di implementare le cose come trigger, prenderei seriamente in considerazione l'idea di imporre l'uso di un'API attorno allo schema (preferibilmente nel database, ma all'esterno se non è possibile).

Per alcune cose userei ancora i trigger

  • Tenere traccia dei campi "data_creata" e "data_ultima_modifica"
  • Inserimento di "ID" (in Oracle, dove non è presente un campo ID automatico)
  • Mantenimento della cronologia delle modifiche

Cose per cui non vorresti utilizzare i trigger

  • regole/logica aziendale
  • qualsiasi cosa che si connetta al di fuori del database (ad es. una chiamata di servizio web)
  • Controllo accessi
  • Tutto ciò che non è transazionale (tutto ciò che fai nel trigger DEVE essere in grado di eseguire il rollback con la transazione)