Triggere giver dig mulighed for at udføre en funktion i databasen, efterhånden som visse hændelser sker (f.eks. en indsættelse i en tabel).
Jeg kan ikke kommentere specifikt på mysql.
Forsigtighed:Triggere kan være meget tillokkende, når du først begynder at bruge dem, virker de som en magisk kugle til alle slags problemer. Men de får "magiske" ting til at ske, hvis du ikke kender databasen ud og ind, kan det virke som om der sker virkelig mærkelige ting (såsom indsættelser i andre tabeller, ændring af inputdata osv.). Før jeg implementerer ting som en trigger, vil jeg seriøst overveje i stedet at gennemtvinge brugen af en API omkring skemaet (helst i databasen, men udenfor, hvis du ikke kan).
Nogle ting ville jeg stadig bruge triggere til
- Hold styr på felterne "date_created" og "date_last_edited"
- Indsættelse af "ID"'er (i Oracle, hvor der ikke er noget auto-id-felt)
- Bevarelse af ændringshistorik
Ting du ikke ønsker at bruge triggere til
- forretningsregler/logik
- alt, der forbinder uden for databasen (f.eks. et webservicekald)
- Adgangskontrol
- Alt, der ikke er transaktionsbestemt (alt, hvad du gør i triggeren SKAL være i stand til at rulle tilbage med transaktionen)