Hauptmenü

Untermenü

Advanced MySQL - Zwischenspeicherung - Trigger

1. Einführung

Bei einem Trigger handelt es sich um eine Sammlung von SQL-Anweisungen, die man auf eine Tabelle anwendet. Dieser Trigger wird dann automatisch bei einem bestimmten Event ausgelöst. Dabei kann es um INSERT-, UPDATE- oder DELETE-Anweisungen handeln. Das unterscheidet ihn von Routinen, die explizit aufgerufen werden müssen.

Vorteile

Nachteile

2. Einschränkungen

Bei Triggern sind einige Dinge verboten und führen zu einer Fehlermeldung. Ich zähle hier nur die Wichtigsten auf.

3. Aufbau

Ein Trigger hat eine ähnliche Struktur wie eine Routine oder ein View. Man muss also auch hier mit dem schon allseits bekannten DELIMITER arbeiten.


DELIMITER |
CREATE TRIGGER name zeitpunkt event ON tabellen_name
  FOR EACH ROW BEGIN
    ...
  END|
DELIMITER ;

zeitpunkt

Hier gibt es zwei Möglichkeiten, BEFORE und AFTER. Beide beziehen sich auf das Event der Tabelle. Ein CREATE TRIGGER blubb BEFORE UPDATE ON blubber wird also vor dem Event der Tabelle ausgeführt.

4. Übernahme von Werten

Will man zum Beispiel geänderte Werte in einer anderen Tabellen mitloggen, so gibt es mehrere Möglichkeiten. Grundsätzlich wird unterschieden zwischen OLD (alter Wert) und NEW (neuer Wert). Wegen der Logik von UPDATE- und DELETE-Anweisungen gibt es natürlich ein paar Einschränkungen.

Schaut mal das entsprechende SQL-Beispiel an, da habe ich damit gearbeitet.

zurück zum vorherigen Abschnitt