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

Opsætning af MySQL-triggere

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)


  1. Opbygning af ternære forhold ved hjælp af Laravel Eloquent Relationships

  2. Hvis-sætning i MySQL-lagrede procedure for valg af data

  3. Rails 3.1:Forespørgsel efter postgres inden for et tidsinterval

  4. MySQL kontrollere, om en tabel eksisterer uden at kaste en undtagelse