Heim > Datenbank > MySQL-Tutorial > Wie lösche ich verknüpfte Daten in MySQL mithilfe von JOIN kaskadierend?

Wie lösche ich verknüpfte Daten in MySQL mithilfe von JOIN kaskadierend?

Patricia Arquette
Freigeben: 2025-01-20 16:56:09
Original
855 Leute haben es durchsucht

How to Cascade Delete Associated Data in MySQL Using JOIN?

JOIN-Löschung in MySQL: Zugehörige Daten löschen

In relationalen Datenbanken ist es normalerweise notwendig, Stammdaten und zugehörige Daten zu löschen. In MySQL können Sie die JOIN-Anweisung verwenden, um kaskadierende Löschvorgänge zu implementieren.

Frage:

Beachten Sie die folgende Tabellenstruktur:

CREATE TABLE clients (
   client_id INT(11),
   PRIMARY KEY (client_id)
);
CREATE TABLE projects (
   project_id INT(11) UNSIGNED,
   client_id INT(11) UNSIGNED,
   PRIMARY KEY (project_id)
);
CREATE TABLE posts (
   post_id INT(11) UNSIGNED,
   project_id INT(11) UNSIGNED,
   PRIMARY KEY (post_id)
);
Nach dem Login kopieren

Beim Löschen eines Kunden müssen alle zugehörigen Projekte und Beiträge nacheinander gelöscht werden. Der folgende PHP-Code ist jedoch nicht gültig:

DELETE
FROM posts
INNER JOIN projects ON projects.project_id = posts.project_id
WHERE projects.client_id = :client_id;
Nach dem Login kopieren

Lösung:

Um mit einem gelöschten Kunden verknüpfte Beiträge erfolgreich zu löschen, müssen Sie angeben, dass Sie den Eintrag aus der Beitragstabelle löschen möchten:

DELETE posts
FROM posts
INNER JOIN projects ON projects.project_id = posts.project_id
WHERE projects.client_id = :client_id;
Nach dem Login kopieren

Der geänderte Code löscht das Projekt und die zugehörigen Beiträge, wenn ein Kunde gelöscht wird.

Das obige ist der detaillierte Inhalt vonWie lösche ich verknüpfte Daten in MySQL mithilfe von JOIN kaskadierend?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage