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
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
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!