Wie verwende ich Trigger in MySQL? Ausführliche Erklärung der MySQL-Trigger

Wie verwende ich Trigger in MySQL? Ausführliche Erklärung der MySQL-Trigger

MySQL ist ein häufig verwendetes relationales Datenbankverwaltungssystem, das die Verwendung von Triggern unterstützt. Ein Trigger ist eine spezielle gespeicherte Prozedur in MySQL , die eine Reihe von SQL- Anweisungen für eine bestimmte Tabelle ausführen kann, ähnlich dem ereignisgesteuerten Programmiermodell. Verwenden Sie Trigger, um komplexe Geschäftslogik zu implementieren und die Leistung und Zuverlässigkeit der Datenbank zu verbessern. In diesem Artikel wird die Verwendung von Triggern in MySQL ausführlich vorgestellt .

1. Erstellen Sie einen Auslöser

In MySQL können Trigger mit der CREATE TRIGGER- Anweisung erstellt werden. Die grundlegende Syntax der CREATE TRIGGER -Anweisung lautet wie folgt:

CREATE TRIGGER Triggername Triggerzeit Triggerereignis ON Tabellenname FÜR JEDE Zeile Triggerkörper;

Unter diesen ist Trigger_Name der Name des Triggers; Trigger_Time ist die Ausführungszeit des Triggers, die BEFORE oder AFTER sein kann ; Trigger_event ist das Ereignis des Triggers, das INSERT , UPDATE oder DELETE sein kann ; Table_Name ist der Name des Tabelle, in der sich der Trigger befindet; Trigger_body ist die SQL- .

Der folgende Trigger erstellt beispielsweise einen BEFORE INSERT- Trigger für die Mitarbeitertabelle , der die Eintrittszeit automatisch auf die aktuelle Zeit setzt, wenn ein neuer Mitarbeiter beitritt:

Erstellen Sie TRIGGER set_join_date, bevor Sie den Mitarbeiter für jede Zeile einfügen

BEGINNEN

SET NEW.join_date = NOW();

ENDE;

2. Trigger-Ausführungszeit

In MySQL können Trigger vor oder nach einem INSERT- , UPDATE- oder DELETE -Ereignis ausgeführt werden. Die Ausführungszeit eines Triggers kann BEFORE oder AFTER sein .

VOR dem Auslösen

Der BEFORE- Trigger wird vor der Ausführung einer INSERT- , UPDATE- oder DELETE- Operation ausgeführt und kann eine gewisse Datenvorverarbeitung und -überprüfung in der Datenbank implementieren.

Der folgende Trigger erstellt beispielsweise einen BEFORE UPDATE- Trigger für die Mitarbeitertabelle . Wenn das Gehalt des Mitarbeiters mehr als 10.000 beträgt , wird sein Gehalt auf 10.000 festgelegt :

ERSTELLEN SIE TRIGGER limit_salary, BEVOR SIE DEN Mitarbeiter FÜR JEDE ZEILE AKTUALISIEREN

BEGINNEN

WENN NEU.Gehalt > 10000 DANN

SET NEW.salary = 10000;

ENDE WENN;

ENDE;

NACH Auslöser

Der AFTER- Trigger wird nach der Ausführung einer INSERT- , UPDATE- oder DELETE -Operation ausgeführt und kann einige Datennachbearbeitungen und Berechnungen in der Datenbank implementieren.

Der folgende Trigger erstellt beispielsweise einen AFTER INSERT- Trigger für die Bestelltabelle , der den Produktbestand automatisch aktualisiert, wenn eine neue Bestellung hinzugefügt wird:

ERSTELLEN SIE TRIGGER update_inventory NACH DEM EINFÜGEN AUF BESTELLUNG FÜR JEDE REIHE

BEGINNEN

Produkt aktualisieren SET inventory = inventory - NEW.quantity WHERE id = NEW.product_id;

ENDE;

3. Ereignisse auslösen

In MySQL können Trigger bei INSERT- , UPDATE- oder DELETE -Ereignissen ausgeführt werden. Das INSERT- Ereignis wird ausgelöst, wenn ein neuer Datensatz eingefügt wird, das UPDATE- Ereignis wird ausgelöst, wenn ein Datensatz aktualisiert wird, und das DELETE -Ereignis wird ausgelöst, wenn ein Datensatz gelöscht wird. Trigger können bei mehreren Ereignissen ausgeführt werden.

Der folgende Trigger erstellt beispielsweise einen BEFORE INSERT- oder UPDATE- Trigger in der Mitarbeitertabelle , und wenn das Gehalt des Mitarbeiters größer als 10.000 ist , wird sein Gehalt auf 10.000 gesetzt :

ERSTELLEN SIE TRIGGER limit_salary, BEVOR SIE DEN Mitarbeiter FÜR JEDE ZEILE EINFÜGEN ODER AKTUALISIEREN

BEGINNEN

WENN NEU.Gehalt > 10000 DANN

SET NEW.salary = 10000;

ENDE WENN;

ENDE;

4. Ausführungsbedingungen auslösen

In MySQL können Sie die IF- Anweisung verwenden, um die Ausführungsbedingungen von Triggern zu steuern. Die IF- Anweisung kann anhand von Bedingungen bestimmen, ob die SQL- Anweisung im Trigger ausgeführt werden soll .

Der folgende Trigger erstellt beispielsweise einen BEFORE INSERT- Trigger für die Mitarbeitertabelle . Wenn das Gehalt des Mitarbeiters weniger als 5.000 beträgt , wird seine Eintrittszeit auf die aktuelle Zeit gesetzt:

Erstellen Sie TRIGGER set_join_date, bevor Sie den Mitarbeiter für jede Zeile einfügen

BEGINNEN

WENN NEU.Gehalt < 5000 DANN

SET NEW.join_date = NOW();

ENDE WENN;

ENDE;

5. Prozesssteuerung auslösen

In MySQL können Trigger Flusskontrollanweisungen verwenden, um den Ausführungsfluss des Programms zu steuern, z. B. IF -Anweisungen, CASE -Anweisungen, WHILE -Anweisungen, LOOP -Anweisungen usw. Flusskontrollanweisungen können Entwicklern bei der Implementierung komplexerer Geschäftslogik helfen.

Der folgende Trigger erstellt beispielsweise einen BEFORE INSERT- Trigger für die Mitarbeitertabelle . Wenn das Gehalt des Mitarbeiters weniger als 5.000 beträgt, wird sein Beitrittszeitpunkt auf den aktuellen Zeitpunkt festgelegt, andernfalls wird sein Beitrittszeitpunkt auf den Zeitpunkt vor einem Monat festgelegt:

Erstellen Sie TRIGGER set_join_date, bevor Sie den Mitarbeiter für jede Zeile einfügen

BEGINNEN

WENN NEU.Gehalt < 5000 DANN

SET NEW.join_date = NOW();

ANDERS

SET NEW.join_date = DATE_SUB(NOW(), INTERVAL 1 MONTH);

ENDE WENN;

ENDE;

6. Optimierung der Trigger

Trigger können Entwicklern dabei helfen, die Leistung und Zuverlässigkeit der Datenbank zu optimieren. Hier sind einige Optimierungstipps für Trigger:

Minimieren Sie die Ausführungszeit von Triggern und vermeiden Sie, dass Trigger groß und komplex werden.

Vermeiden Sie die Ausführung komplexer SQL- Anweisungen in Triggern, da komplexe SQL- Anweisungen zu Leistungseinbußen führen.

Verwenden Sie Trigger-Ausführungsbedingungen und Flusskontrollanweisungen, um den Ausführungsfluss zu steuern und eine unnötige Ausführung von Triggern zu vermeiden.

Vermeiden Sie die Ausführung mehrerer SQL- Anweisungen in Triggern , da mehrere SQL- Anweisungen zu Leistungseinbußen führen.

7. Zusammenfassung

Ein Trigger ist eine spezielle gespeicherte Prozedur in MySQL , die eine Reihe von SQL- Anweisungen für eine bestimmte Tabelle ausführen kann, ähnlich dem ereignisgesteuerten Programmiermodell. In diesem Artikel erfahren Sie, wie Sie Trigger in MySQL erstellen , die Ausführungszeit von Triggern steuern, Ereignisse und Prozesse steuern, Trigger optimieren usw. Entwickler können Trigger flexibel je nach Bedarf und Szenario verwenden, um die Effizienz und Zuverlässigkeit der MySQL- Datenbank zu verbessern.

Ich denke du magst

Origin blog.csdn.net/thanklife/article/details/131964017
Empfohlen
Rangfolge