SQL-Trigger werden zur Überwachung von semantischen Integritätsbedingungen eingesetzt. Trigger bilden dabei eine einfache Form von ECA-Regeln. ECA steht für „Event, Control, Action“ und definiert in Zusammenhang mit Datenbanken eine Aktion, die nach der Kontrolle eines Ereignis ausgeführt werden soll.
Zur praktischen Veranschaulichung habe ich ein MySQL-Skript mit drei Tabellen und einem Trigger geschrieben. In der Tabelle „users“ können Benutzer mit einem Vor- und Nachnamen eingetragen werden. Der im Skript definierte Trigger führt nach dem Eintragen in die „users“-Tabelle einen Stringvergleich aus und schreibt alle Benutzer, deren Nachname nicht mit einem Buchstaben größer „N“ anfängt in die „users_a_m“-Tabelle. Alle Benutzer, deren Nachname mit einem „N“ oder größer beginnt, werden in die Tabelle „users_n_z“ kopiert.
Mein Beispiel demonstriert neben dem definierten After-Trigger auch noch eine Möglichkeit zur Datenbank-Skalierung. Man könnte nämlich die Tabellen „users_a_m“ und „users_n_z“ auf verschiedene Datenbank-Server auslagern und beim Lesen von Datensätzen die entsprechende Datenbank anfragen (je nachdem mit welchem Anfangsbuchstaben der Nachname des gesuchten Benutzers anfängt). Dies hätte den Vorteil, das die Datenbank-Anfragen verteilt werden und die Anfrage-Last nicht auf eine einzige Datenbank trifft.
MySQL Trigger Beispiel weiterlesen