Direkt zum Hauptinhalt springen
eLearner.app
Modul 12 · Lektion 4 von 448/57 im Kurs~12 min
Lektionen des Moduls (4/4)

Praktische Trigger und Audit

Nachdem wir nun gelernt haben, wie man intelligente Kugeln schmiedet (die Auslöserfunktionen), müssen wir sie auf echten vorbereiteten Waffen montieren, die auf ein Ereignis warten: Hier kommen die eigentlichen Auslöser! Ein Trigger hängt formal eine zuvor erstellte Funktion an und weist sie an, „VOR“ oder „NACH“ einem bestimmten CRUD-Ereignis für eine bestimmte Tabelle auszulösen.

Es gibt viele Möglichkeiten; Beispielsweise löst FOR EACH ROW es einmal pro betroffener Zeile aus. Wenn also eine Massenabfrage ein GLOBAL UPDATE über 5 Millionen Zeilen ist, würde es 5 Millionen Mikroausführungen auslösen – seien Sie damit vorsichtig!

SQL
CREATE TRIGGER sync_inventory_trigger
-- Event options
AFTER INSERT OR UPDATE ON order_items
-- Modus operandi (singular or global macro-block FOR EACH STATEMENT)
FOR EACH ROW
-- Run the forged action
EXECUTE FUNCTION update_stock();

Der Auslöser ist für JavaScript unsichtbar und sorgt autonom für eine perfekte Konsistenz des Bestands, basierend ausschließlich auf Updates, die sicher an die Engine übermittelt werden.

Automatisierung von Updated_At

Es gibt ein immer wiederkehrendes Geschäftsproblem, bei dem wir vergessen, { updated_at: new Date() } in unseren JS-Update-Modellen zu übergeben. Eine Triggerfunktion set_updated_at in Kombination mit einem BEFORE UPDATE-Trigger beseitigt dieses Ärgernis, indem jede Datensatzänderung automatisch automatisch aktualisiert wird.

Probieren Sie es selbst aus

Übung#sql.m12.l4.e1
Versuche: 0Wird geladen…

Erstellen Sie einen Trigger mit dem Namen „trg_force_uppercase“. Hängen Sie ihn in der Phase „BEFORE INSERT“ an die Tabelle „customers“ an. Erzwingen Sie die zeilenweise Berechnung „FOR EACH ROW“ und rufen Sie die Ausführung der Funktion „force_uppercase_name()“ auf. Hinweis: Erstellen Sie dann auch die UDF „force_uppercase_name“ (da die Umgebung isoliert ist) neu am Anfang des Codes Hängen Sie die Trigger-Deklaration an.

Editor wird geladen…
Hinweis anzeigen

Textsyntax: Erstellen Sie zuerst die Funktion und fügen Sie dann CREATE TRIGGER trg_force_uppercase BEFORE INSERT ON customer FÜR JEDE Zeile hinzu. EXECUTE FUNCTION force_uppercase_name();

Lösung nach 3 Versuchen verfügbar

Übung#sql.m12.l4.e2
Versuche: 0Wird geladen…

Töte den Sensor! Manchmal möchten wir rohe Seed-Dateien oder temporäre native Änderungen durchschieben und dabei laute Audits umgehen. Das Löschen eines Triggers ist unglaublich einfach (Sie löschen nicht die organische Funktion, sondern nur die Sensorbindung). Verwenden Sie das Schlüsselwort „DROP TRIGGER“ und geben Sie den Namen und den globalen Anhang an.

Editor wird geladen…
Hinweis anzeigen

Denken Sie daran, anzugeben, woher. DROP TRIGGER trg_force_uppercase ON Kunden;

Lösung nach 3 Versuchen verfügbar