Programmieren eines MySQL-Triggers zum Einfügen von Daten in eine andere Tabelle
MySQL-Trigger ermöglichen die Ausführung vordefinierter Aktionen, wenn bestimmte Ereignisse in einer Datenbanktabelle auftreten . In diesem Fall besteht das Ziel darin, einen Trigger zu erstellen, der eine Zeile in eine andere Tabelle einfügt, wenn eine Zeile in eine bestimmte Tabelle eingefügt wird.
So ermitteln Sie die ID der zuletzt eingefügten Zeile
Um die ID der zuletzt eingefügten Zeile zu erfassen, ist es notwendig, die Funktion LAST_INSERT_ID() innerhalb des Triggers zu verwenden. Diese Funktion gibt die ID der zuletzt eingefügten Zeile zurück.
Speichern von Daten aus der zuletzt eingefügten Zeile zur Verwendung in der INSERT-Anweisung
Um die Daten aus der zuletzt eingefügten Zeile ordnungsgemäß zu speichern Kommentarzeile, sie kann in lokalen Variablen innerhalb des Triggers gespeichert werden. Wenn die Benutzer-ID-Spalte beispielsweise den Namen user_id und die Kommentartextspalte den Namen comment_text hat, können Sie die folgende Syntax verwenden:
DECLARE user_id INTEGER; DECLARE comment_text VARCHAR(255); SET user_id = NEW.user_id; SET comment_text = NEW.comment_text;
Verwendung gespeicherter Prozeduren
Auslöser sind zwar nützlich, um als Reaktion auf bestimmte Ereignisse automatisch Aktionen auszuführen, ihre Funktionalität ist jedoch eingeschränkt und für komplexe Vorgänge möglicherweise nicht geeignet. In solchen Fällen wird empfohlen, eine Kombination aus Triggern und gespeicherten Prozeduren zu verwenden.
Triggerstruktur
Die Grundstruktur des Triggers würde wie folgt aussehen:
DELIMITER $$ CREATE TRIGGER comments_after_ins_trig AFTER INSERT ON comments FOR EACH ROW BEGIN -- Grab the ID of the last inserted row SET @last_inserted_id = LAST_INSERT_ID(); -- Store data from the last inserted row into local variables SET @user_id = NEW.user_id; SET @comment_text = NEW.comment_text; -- Perform the INSERT into the activities table INSERT INTO activities (user_id, comment_text) VALUES (@user_id, @comment_text); END; $$ DELIMITER ;
Das obige ist der detaillierte Inhalt vonWie erstelle ich einen MySQL-Trigger zum Einfügen von Daten in eine andere Tabelle nach einem INSERT?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!