Datenbank-Trigger (kurz: Trigger) sind spezielle automatische Aktionen in einer Datenbank, die ausgelöst werden, wenn bestimmte Ereignisse auf einer Tabelle oder Sicht (View) passieren.
Ein Trigger ist ein vordefinierter Code, der bei INSERT, UPDATE oder DELETE auf einer Tabelle automatisch ausgeführt wird – ohne dass der Benutzer ihn direkt aufruft.
Stell dir vor, du hast eine Tabelle Bestellungen
, und du willst, dass immer, wenn eine Bestellung gelöscht wird, diese Info in einer Tabelle Log
gespeichert wird.
Dann schreibst du einen DELETE-Trigger für die Tabelle Bestellungen
, der automatisch beim Löschen etwas in Log
schreibt.
Typ | Beschreibung |
---|---|
BEFORE | Wird vor der Aktion ausgeführt |
AFTER | Wird nach der Aktion ausgeführt |
INSTEAD OF | (bei Views) ersetzt die Aktion komplett |
CREATE TRIGGER log_delete
AFTER DELETE ON Bestellungen
FOR EACH ROW
BEGIN
INSERT INTO Log (aktion, zeitpunkt)
VALUES ('Bestellung gelöscht', NOW());
END;
Validierung von Daten
Automatisches Logging
Business-Logik abbilden
Referentielle Integrität erweitern
Schwer zu debuggen
Können unbemerkt viele Aktionen auslösen
Beeinflussen Performance, wenn komplex
Die Data Manipulation Language (DML) ist ein Teilbereich der SQL (Structured Query Language), der für das Bearbeiten von Daten in einer Datenbank verwendet wird. Mit DML können Benutzer Daten einfügen, abfragen, ändern und löschen – also genau das, was man im Alltag mit Daten in einer Datenbank machen möchte.
Befehl | Zweck |
---|---|
SELECT |
Daten aus einer Tabelle abfragen |
INSERT |
Neue Daten einfügen |
UPDATE |
Bestehende Daten ändern |
DELETE |
Daten löschen |
Beispiel:
-- Einfügen
INSERT INTO kunden (name, stadt) VALUES ('Müller', 'Berlin');
-- Abfragen
SELECT * FROM kunden WHERE stadt = 'Berlin';
-- Aktualisieren
UPDATE kunden SET stadt = 'Hamburg' WHERE name = 'Müller';
-- Löschen
DELETE FROM kunden WHERE name = 'Müller';
DML arbeitet mit den Daten innerhalb der Tabellen, nicht mit der Struktur der Tabellen selbst (dafür gibt es die Data Definition Language, DDL).
DML-Befehle können oft rückgängig gemacht werden (z. B. durch ROLLBACK
), sofern Transaktionen unterstützt werden.
Kurz gesagt: DML ist das Werkzeug, mit dem du Daten in einer Datenbank lebendig hältst – also ständig anpasst, liest und veränderst.