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?

Wie lösche ich mithilfe von MySQL-Triggern korrekt Daten aus einer Tabelle, nachdem ich sie aus einer anderen gelöscht habe?

Linda Hamilton
Linda HamiltonOriginal
2024-11-03 16:25:03431Durchsuche

How to Correctly Delete Data from One Table After Deleting from Another Using MySQL Triggers?

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!

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