Trigger sind Datenbank-Objekte, die automatisch ausgeführt werden, wenn in einer Tabelle etwas passiert – z. B. beim Einfügen, Ändern oder Löschen von Daten. Damit kannst du Daten konsistent halten oder zusätzliche Logik hinterlegen.

🔹 Was sind Trigger?

  • Trigger hängen an Tabellen.
  • Sie reagieren auf INSERT, UPDATE oder DELETE.
  • Sie laufen entweder BEFORE oder AFTER der Aktion.

👉 Vorteil: Prozesse laufen automatisch, ohne dass der Benutzer etwas tun muss.

🔹 Beispiel: Änderungsprotokoll (Audit-Log)

Wir legen eine neue Tabelle kunden_log an:

CREATE TABLE kunden_log (
    id INT AUTO_INCREMENT PRIMARY KEY,
    kunde_id INT,
    aktion VARCHAR(20),
    zeitpunkt DATETIME DEFAULT CURRENT_TIMESTAMP
);

Trigger: Immer wenn ein neuer Kunde angelegt wird, landet ein Eintrag im Log.

DELIMITER //
CREATE TRIGGER kunde_insert AFTER INSERT ON kunden
FOR EACH ROW
BEGIN
    INSERT INTO kunden_log (kunde_id, aktion) 
    VALUES (NEW.id, 'INSERT');
END //
DELIMITER ;

Test:

INSERT INTO kunden (vorname, nachname, email) 
VALUES ('Lisa', 'Klein', 'lisa@example.org');

SELECT * FROM kunden_log;

🔹 BEFORE-Trigger

Beispiel: Preis darf nicht negativ sein.

DELIMITER //
CREATE TRIGGER check_preis BEFORE INSERT ON produkte
FOR EACH ROW
BEGIN
    IF NEW.preis < 0 THEN
        SET NEW.preis = 0;
    END IF;
END //
DELIMITER ;

🔹 Trigger löschen

DROP TRIGGER IF EXISTS kunde_insert;

🔹 Übung

  1. Erstelle einen Trigger bestellung_delete, der ins Log schreibt, wenn eine Bestellung gelöscht wird.
  2. Erstelle einen Trigger kunde_update, der Änderungen an Kunden im Log speichert.
  3. Teste die Trigger mit neuen INSERT-, UPDATE- und DELETE-Befehlen.

✅ Zusammenfassung

  • Trigger laufen automatisch bei INSERT, UPDATE, DELETE.
  • BEFORE: Daten anpassen, bevor sie gespeichert werden.
  • AFTER: Aktionen nach Speicherung (z. B. Log-Eintrag).
  • Praktisch für Protokollierung und Validierung.

Im nächsten Kapitel geht es um Events – zeitgesteuerte Aufgaben direkt in MariaDB.

📚 Inhaltsverzeichnis

👉 MariaDB Kapitel 1: Einführung & Installation im Terminal
👉 MariaDB Kapitel 2: Benutzer & Rechteverwaltung
👉 MariaDB Kapitel 3: Tabellen sauber anlegen (Primär- & Fremdschlüssel)
👉 MariaDB Kapitel 4: Grundbefehle & Kurzschreibweisen in der MariaDB-Konsole
👉 MariaDB Kapitel 5: CRUD-Befehle  – Daten einfügen, lesen, ändern und löschen
👉 MariaDB Kapitel 6: Primär- und Fremdschlüssel – Tabellen verknüpfen
👉 MariaDB Kapitel 7: Profi-Abfragen mit JOIN, GROUP BY & Aggregatfunktionen
👉 MariaDB Kapitel 8: Indexe, Views & Transaktionen
👉 MariaDB Kapitel 9: Produktivbetrieb – Sicherheit, Backups & Verwaltung
👉 MariaDB Kapitel 10: Abschlussprojekt – Ein Mini-Shop

📚 Bonus-Kapitel Ideen

👉 MariaDB Kapitel 11: Stored Procedures – Automatisierte Abläufe
👉 MariaDB Kapitel 12: Trigger – Aktionen bei Änderungen
👉 MariaDB Kapitel 13: Events – Zeitgesteuerte Aufgaben
👉 MariaDB Kapitel 14: Sicherheit & Best Practices
👉 MariaDB Kapitel 15: Performance-Tuning & Optimierung