Heim  >  Artikel  >  Datenbank  >  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“?

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“?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-02 16:53:02149Durchsuche

Why Am I Getting a

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn