Heim >Datenbank >MySQL-Tutorial >Wie lösche ich verknüpfte Daten in MySQL mithilfe von JOIN kaskadierend?
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:
<code class="language-sql">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) );</code>
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:
<code class="language-sql">DELETE FROM posts INNER JOIN projects ON projects.project_id = posts.project_id WHERE projects.client_id = :client_id;</code>
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:
<code class="language-sql">DELETE posts FROM posts INNER JOIN projects ON projects.project_id = posts.project_id WHERE projects.client_id = :client_id;</code>
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!