Heim >Datenbank >MySQL-Tutorial >Warum erhalte ich beim Erstellen eines MySQL-Triggers zum Löschen aus einer Tabelle nach einem DELETE-Vorgang die Fehlermeldung „Check Syntax Near END on Line 6'?
MySQL-Trigger: Aus Tabelle NACH DEM LÖSCHEN löschen – Syntaxfehler und -auflösung
Beim Versuch, einen Trigger zum Löschen von Zeilen aus der Datei „patron_info“ zu erstellen '-Tabelle, nachdem eine Zeile aus der Tabelle 'Benutzer' gelöscht wurde, wird möglicherweise die Fehlermeldung „Überprüfen Sie die Syntax nahe ENDE in Zeile 6“ angezeigt. Dieser Fehler weist auf einen Syntaxfehler im Triggercode hin.
Der bereitgestellte Triggercode weist derzeit einen Syntaxfehler in der WHERE-Klausel der DELETE-Anweisung auf:
DELETE FROM patron_info WHERE patron_info.pid = patrons.id
Das Problem hierbei ist, dass die Der Trigger referenziert die Tabelle „patrons“ unter Verwendung des Alias „patrons“, der nur innerhalb der BEGIN- und END-Blöcke des Triggers verfügbar ist. Um dieses Problem zu beheben, sollte die DELETE-Anweisung stattdessen auf den „alten“ Alias verweisen, der die gelöschte Zeile aus der Tabelle „Benutzer“ darstellt:
DELETE FROM patron_info WHERE patron_info.pid = old.id
Mit dieser Korrektur sollte der Auslösercode jetzt lauten:
CREATE TRIGGER log_patron_delete AFTER DELETE on patrons FOR EACH ROW BEGIN DELETE FROM patron_info WHERE patron_info.pid = old.id; END
Außerdem ist es wichtig sicherzustellen, dass die DELETE-Anweisung mit einem Semikolon (;) endet, um die Anweisung zu beenden. Bei der Eingabe des Triggercodes in der Konsole sollten auch Trennzeichen verwendet werden, um die Triggergrenzen zu definieren.
Das obige ist der detaillierte Inhalt vonWarum erhalte ich beim Erstellen eines MySQL-Triggers zum Löschen aus einer Tabelle nach einem DELETE-Vorgang die Fehlermeldung „Check Syntax Near END on Line 6'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!