Heim >Datenbank >MySQL-Tutorial >Wie lösche ich mithilfe von MySQL-Triggern korrekt Daten aus einer Tabelle, nachdem ich sie aus einer anderen gelöscht habe?
MySQL-Trigger: Löschen aus einer Tabelle nach dem Löschen aus einer anderen
Problem:
Sie Sie möchten einen Trigger erstellen, der automatisch Zeilen aus Tabelle 2 (patron_info) löscht, wenn eine Zeile aus Tabelle 1 (patrons) gelöscht wird. Beim Erstellen des Triggers tritt jedoch ein Syntaxfehler auf.
Lösung:
Der Fehler wird wahrscheinlich durch eine falsche Syntax in der DELETE-Anweisung innerhalb des Triggers verursacht . Insbesondere müssen Sie „old.id“ anstelle von „patrons.id“ verwenden, um auf die ID der gelöschten Zeile zu verweisen, gemäß dem folgenden Auslöser:
<code class="sql">CREATE TRIGGER log_patron_delete AFTER DELETE ON patrons FOR EACH ROW BEGIN DELETE FROM patron_info WHERE patron_info.pid = old.id; END</code>
Stellen Sie sicher, dass Sie Folgendes einschließen: am Ende der DELETE-Anweisung und überprüfen Sie auch die korrekte Syntax an anderen Teilen des Triggers.
Denken Sie außerdem daran, Trennzeichen zu verwenden, wenn Sie den Triggercode in ein Konsolenfenster eingeben. Sie können beispielsweise $ als Trennzeichen verwenden, etwa so:
<code class="sql">DELIMITER $ CREATE TRIGGER log_patron_delete AFTER DELETE ON patrons FOR EACH ROW BEGIN DELETE FROM patron_info WHERE patron_info.pid = old.id; END$ DELIMITER ; $</code>
Das obige ist der detaillierte Inhalt vonWie lösche ich mithilfe von MySQL-Triggern korrekt Daten aus einer Tabelle, nachdem ich sie aus einer anderen gelöscht habe?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!