Heim >Datenbank >MySQL-Tutorial >Wie verwende ich MySQL-Trigger, um Zeilen in eine andere Tabelle einzufügen?
Einfügen von Zeilen in eine andere Tabelle mit MySQL-Trigger
In relationalen Datenbankverwaltungssystemen wie MySQL spielen Trigger eine entscheidende Rolle bei der Automatisierung bestimmter Datenbankaktionen als Reaktion auf bestimmte Ereignisse, wie z. B. das Einfügen, Löschen oder Ändern von Daten. Lassen Sie uns in diesem Zusammenhang auf das Thema der Erstellung eines Triggers eingehen, der beim Einfügen einer Zeile in eine bestimmte Tabelle eine Zeile in eine andere Tabelle einfügt.
Das Problem verstehen
Die Ziel ist es, einen MySQL-Trigger für eine „Kommentar“-Tabelle zu erstellen, der jedes Zeileneinfügungsereignis überwacht. Wenn eine neue Kommentarzeile eingefügt wird, sollte der Trigger die folgenden Aufgaben ausführen:
Trigger Struktur
Die Grundstruktur des Triggers zur Implementierung dieser Funktionen umfasst Folgendes:
CREATE TRIGGER <trigger_name> AFTER INSERT ON <source_table> FOR EACH ROW BEGIN -- Retrieve the ID of the newly inserted row DECLARE last_insert_id INT; SET last_insert_id = LAST_INSERT_ID(); -- Insert data into the "activities" table INSERT INTO <target_table> (column_list) VALUES (new.column1, new.column2, ..., last_insert_id); END
Trigger-Implementierung
Zur Demonstration der Betrachten Sie bei der Implementierung das folgende Beispiel:
-- Create the "comments" and "activities" tables CREATE TABLE comments ( comment_id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, user_id INT UNSIGNED NOT NULL ) ENGINE=INNODB; CREATE TABLE activities ( activity_id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, comment_id INT UNSIGNED NOT NULL, user_id INT UNSIGNED NOT NULL ) ENGINE=INNODB; -- Create the trigger to insert data into the "activities" table CREATE TRIGGER comments_after_ins_trig AFTER INSERT ON comments FOR EACH ROW BEGIN -- Retrieve the ID of the newly inserted comment row DECLARE last_insert_id INT; SET last_insert_id = LAST_INSERT_ID(); -- Insert data into the "activities" table INSERT INTO activities (comment_id, user_id) VALUES (new.comment_id, new.user_id); END; -- Insert some data into the "comments" table INSERT INTO comments (user_id) VALUES (1), (2); -- Query the "comments" and "activities" tables to observe the results SELECT * FROM comments; SELECT * FROM activities;
Beim Ausführen der Abfragen werden Sie feststellen, dass für jede in die eingefügte Kommentarzeile In der Tabelle „Kommentare“ wird automatisch eine entsprechende Zeile in die Tabelle „Aktivitäten“ eingefügt. Dies zeigt die Wirksamkeit des Auslösers beim Erreichen des gewünschten Ergebnisses.
Das obige ist der detaillierte Inhalt vonWie verwende ich MySQL-Trigger, um Zeilen in eine andere Tabelle einzufügen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!