MySQL-Triggersyntax und Anwendungsbeispiele

MySQL-Triggersyntax und Anwendungsbeispiele

Dieser Artikel veranschaulicht anhand von Beispielen die Syntax und Anwendung von MySQL-Triggern. Teilen Sie uns die Einzelheiten zu Ihrer Information mit:

Beispiel: Erstellen eines Triggers zum Aufzeichnen von Operationen zum Hinzufügen, Löschen und Ändern von Tabellen

//Benutzertabelle erstellen;
DROP TABLE, WENN `Benutzer` EXISTIERT;
CREATE TABLE `Benutzer` (
 `id` bigint(20) NICHT NULL AUTO_INCREMENT,
 `Konto` varchar(255) DEFAULT NULL,
 `name` varchar(255) DEFAULT NULL,
 `Adresse` varchar(255) DEFAULT NULL,
 PRIMÄRSCHLÜSSEL (`id`)
)ENGINE=InnoDB STANDARD-CHARSET=utf8;
 
//Erstellen Sie eine Verlaufstabelle für Benutzertabellenoperationen. DROP TABLE IF EXISTS `user_history`;
CREATE TABLE `user_history` (
 `id` bigint(20) NICHT NULL AUTO_INCREMENT,
 `user_id` bigint(20) NICHT NULL,
 `operatetype` varchar(200) NICHT NULL,
 `operatetime` datetime NICHT NULL,
 PRIMÄRSCHLÜSSEL (`id`)
)ENGINE=InnoDB STANDARD-CHARSET=utf8;

DELIMITER: Ändern Sie das Eingabeabschlusszeichen. Standardmäßig ist das Eingabeabschlusszeichen ein Semikolon;. Hier wird es in zwei Semikolons;; geändert. Der Zweck besteht darin, mehrere Anweisungen mit Semikolons zu kapseln und sie zusammen auszuführen, nachdem alle eingegeben wurden, anstatt sie automatisch auszuführen, wenn das Standard-Semikolonabschlusszeichen gefunden wird.

  • neu: Verfügbar, wenn Einfüge- und Aktualisierungsereignisse ausgelöst werden, die auf den Datensatz verweisen, an dem gearbeitet wird
  • alt: Verfügbar, wenn Lösch- und Aktualisierungsereignisse ausgelöst werden und auf den Datensatz verweisen, an dem gearbeitet wird

EINFÜGEN:

TRIGGER LÖSCHEN, WENN `tri_insert_user` EXISTIERT;
TRENNUNGSZEICHEN ;;
ERSTELLEN SIE TRIGGER `tri_insert_user` NACH DEM INSERT AUF `user` FÜR JEDE ZEILE begin
  INSERT INTO user_history(user_id, operatetype, operatetime) VALUES (new.id, 'Benutzer hinzufügen', now());
Ende
;;
TRENNUNGSZEICHEN ;

AKTUALISIEREN:

TRIGGER LÖSCHEN, WENN `tri_update_user` EXISTIERT;
TRENNUNGSZEICHEN ;;
ERSTELLEN SIE DEN TRIGGER `tri_update_user` NACH DEM UPDATE AUF `user` FÜR JEDE ZEILE begin
  INSERT INTO user_history(user_id,operatetype,operatetime) VALUES (new.id, 'einen Benutzer aktualisieren', now());
Ende
;;
TRENNUNGSZEICHEN ;

LÖSCHEN:

TRIGGER LÖSCHEN, WENN `tri_delete_user` EXISTIERT;
TRENNUNGSZEICHEN ;;
ERSTELLEN SIE DEN TRIGGER `tri_delete_user` NACH DEM LÖSCHEN AUF `user` FÜR JEDE ZEILE begin
  INSERT INTO user_history(user_id, operatetype, operatetime) VALUES (old.id, 'Benutzer löschen', now());
Ende
;;
TRENNUNGSZEICHEN ;

Leser, die an weiteren MySQL-bezogenen Inhalten interessiert sind, können sich die folgenden Themen auf dieser Site ansehen: „MySQL-Abfragekenntnisse“, „MySQL-Transaktionsoperationskenntnisse“, „MySQL-gespeicherte Prozedurkenntnisse“, „Zusammenfassung der Kenntnisse zu MySQL-Datenbanksperren“ und „Zusammenfassung der allgemeinen MySQL-Funktionen“.

Ich hoffe, dass dieser Artikel für jedermann beim Entwurf einer MySQL-Datenbank hilfreich ist.

Das könnte Sie auch interessieren:
  • Verwendung und Verständnis von MySQL-Triggern
  • Detaillierte Erklärung der MySQL-Datenbank-Trigger
  • MySQL-Triggerprinzip und Analyse von Anwendungsbeispielen
  • Einführung in die Verwendung sowie Vor- und Nachteile von MySQL-Triggern

<<:  Verwenden von js, um den Effekt eines Karussells zu erzielen

>>:  Beispielcode zum Partitionieren und Formatieren einer Festplatte größer als 20 TB auf CentOS6

Artikel empfehlen

Das WeChat-Applet implementiert einen einfachen Rechner

Der einfache Rechner des WeChat-Applets dient Ihn...

Warum TypeScripts Enum problematisch ist

Inhaltsverzeichnis Was ist passiert? Verwendung S...

Beispiel für die Implementierung des Skelettbildschirms des WeChat-Applets

Inhaltsverzeichnis Was ist ein Skelettbildschirm?...

Detaillierte Erklärung zum Bereitstellen von H5-Spielen auf einem Nginx-Server

Auf dem Weg zur selbstlernenden Spieleentwicklung...

Beispielcode für einen coolen Atemeffekt mit CSS3+JavaScript

Ein einfacher cooler Effekt, der mit CSS3-Animati...

Verwenden Sie xshell, um eine Verbindung zum Linux-Server herzustellen

Vorteile der Verwendung von xshell zur Verbindung...

MySQL-Code zur Implementierung der Sequenzfunktion

MySQL implementiert Sequenzfunktion 1. Erstellen ...

Ausführliches Tutorial zur Installation von MySQL 8.0.19 (Windows 64 Bit)

Inhaltsverzeichnis MySQL initialisieren MySQL-Die...

Sechs mit CSS3 implementierte Randübergangseffekte

Sechs EffekteImplementierungscode html <h1>...

Jenkins erstellt Docker-Images und überträgt sie in das Harbor-Warehouse.

Inhaltsverzeichnis Docker-Datei pom.xml Jenkins-K...

Zusammenfassung gängiger MySQL-Befehle

Festlegen des MySQL-Root-Passworts Melden Sie sic...

So unterstreichen Sie das A-Tag und ändern die Farbe vor und nach dem Klicken

Code kopieren Der Code lautet wie folgt: ein:link...