sql >> Databasteknik >  >> RDS >> Mysql

Ställa in MySQL-utlösare

Utlösare låter dig utföra en funktion i databasen när vissa händelser inträffar (t.ex. en infogning i en tabell).

Jag kan inte kommentera mysql specifikt.

Försiktighetsåtgärd:Triggers kan vara väldigt lockande, när du först börjar använda dem verkar de som en magisk kula för alla typer av problem. Men de får "magiska" saker att hända, om du inte känner till databasen utan och innan kan det verka som om riktigt konstiga saker händer (som att infoga i andra tabeller, ändra indata, etc). Innan jag implementerar saker som en utlösande faktor skulle jag seriöst överväga att istället genomdriva användningen av ett API runt schemat (helst i databasen, men utanför om du inte kan).

Vissa saker skulle jag fortfarande använda triggers för

  • Håll koll på fälten "date_created" och "date_last_edited"
  • Infoga "ID" (i Oracle, där det inte finns något auto-id-fält)
  • Behåller ändringshistorik

Saker du inte skulle vilja använda triggers för

  • affärsregler/logik
  • allt som ansluter utanför databasen (t.ex. ett webbtjänstanrop)
  • Åtkomstkontroll
  • Allt som inte är transaktionsbaserat (allt du gör i triggern MÅSTE kunna återställas med transaktionen)


  1. Så här fixar du "Väljlistan för INSERT-satsen innehåller färre objekt än infogningslistan"

  2. SQL GROUP BY-klausul för nybörjare

  3. SQL Group BY använder strängar i nya kolumner

  4. MySQL - tvinga att inte använda cache för att testa frågans hastighet