Dies ist eine alte Version des Dokuments!
Ein Datenbank-Trigger ist eine automatische Funktion, die in MySQL durch die folgenden Ereignisse angestoßen werden kann:
Ereignis | Beschreibungstext | Alias OLD | Alias NEW |
---|---|---|---|
INSERT BEFORE | Vor der Erstellung eines neuen Datensatzes | - | X |
INSERT AFTER | Nach der Erstellung eines neuen Datensatzes | - | X |
UPDATE BEFORE | Vor der Aktualisierung eines bestehenden Datensatzes | X | X |
UPDATE AFTER | Nach der Aktualisierung eines bestehenden Datensatzes | X | X |
DELETE BEFORE | Vor dem Löschen eines bestehenden Datensatzes | X | - |
DELETE AFTER | Nach dem Löschen eines bestehenden Datensatzes | X | - |
Um innerhalb des Triggers auf die Werte des alten und neuen Datensatzes zugreifen zu können stehen (je nach Ereignis) die Aliase „OLD“ und „NEW“ zur verfügung.
CREATE TRIGGER `UpdateKontostand` AFTER INSERT ON `Buchungen` FOR EACH ROW UPDATE Mitspieler SET Kontostand = ( SELECT SUM(Betrag) FROM Buchungen WHERE Mitspieler = NEW.Mitspieler ) WHERE ID = NEW.Mitspieler
Bei jedem Einfügen eines neuen Datensatzes in die Tabelle „Buchungen“ wird der das Feld „Kontostand“ in der Tabelle „Mitspieler“ automatisch aktualisiert. Das Schlüsselwort „NEW“ stellt in diesem Kontext den neu angelegten Datensatz in der Tabelle „Buchungen“ dar.