Heim > Datenbank > MySQL-Tutorial > Wie lösche ich Datensätze korrekt aus einer abhängigen Tabelle, nachdem ich sie aus der Haupttabelle in MySQL gelöscht habe?

Wie lösche ich Datensätze korrekt aus einer abhängigen Tabelle, nachdem ich sie aus der Haupttabelle in MySQL gelöscht habe?

Susan Sarandon
Freigeben: 2024-11-03 08:18:02
Original
875 Leute haben es durchsucht

How to Correctly Delete Records from a Dependent Table After Deleting from the Main Table in MySQL?

MySQL-Trigger: Datensätze aus abhängiger Tabelle nach dem Löschen in der Haupttabelle löschen

In einem Datenbankschema ist es üblich, mehrere Tabellen mit zu haben Beziehungen zwischen ihnen. Wenn Datensätze in der Haupttabelle manipuliert werden, kann es erforderlich sein, entsprechende Aktionen auch in abhängigen Tabellen durchzuführen. MySQL-Trigger bieten eine bequeme Möglichkeit, solche Vorgänge zu automatisieren.

Stellen Sie sich ein Szenario vor, in dem eine Tabelle namens „patrons“ Informationen über Einzelpersonen speichert und eine zugehörige Tabelle namens „patron_info“ zusätzliche Details für jeden Benutzer enthält. Wenn ein Benutzer aus der Tabelle „patrons“ entfernt wird, ist es wünschenswert, auch seine entsprechenden Informationen aus der Tabelle „patron_info“ zu löschen.

Um dies zu erreichen, kann ein DELETE-Trigger verwendet werden. Beim Versuch, den Trigger mithilfe des Codes zu erstellen, ist jedoch ein Syntaxfehler aufgetreten:

CREATE TRIGGER log_patron_delete AFTER DELETE on patrons
FOR EACH ROW
BEGIN
DELETE FROM patron_info
    WHERE patron_info.pid = patrons.id
END
Nach dem Login kopieren

Der Fehler (1046: Check syntax near END on line 6) weist auf ein Problem mit der Syntax des Triggercodes hin. Bei näherer Betrachtung wird klar, dass die old.id-Syntax anstelle von „patrons.id“ in der DELETE-Anweisung verwendet werden sollte, um korrekt auf die ID des gelöschten Benutzers zu verweisen.

Der korrigierte Triggercode lautet wie folgt:

CREATE TRIGGER log_patron_delete AFTER DELETE on patrons
FOR EACH ROW
BEGIN
DELETE FROM patron_info
    WHERE patron_info.pid = old.id;
END
Nach dem Login kopieren

Es ist wichtig zu beachten, dass bei der Eingabe des Triggercodes in einem Konsolenfenster möglicherweise die Verwendung von Trennzeichen (wie $ oder //) erforderlich ist, um bestimmte Zeichen im Code zu verarbeiten. Vergessen Sie außerdem nicht, am Ende der DELETE-Anweisung ein Semikolon einzufügen.

Wenn Sie diese Richtlinien befolgen, löscht der Trigger jedes Mal erfolgreich Datensätze aus der Tabelle „patron_info“, wenn ein Datensatz aus der Tabelle „patrons“ gelöscht wird, wodurch die Daten sichergestellt werden Konsistenz und Integrität innerhalb der Datenbank.

Das obige ist der detaillierte Inhalt vonWie lösche ich Datensätze korrekt aus einer abhängigen Tabelle, nachdem ich sie aus der Haupttabelle in MySQL gelöscht habe?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage