Heim >Datenbank >MySQL-Tutorial >Wie lösche ich Datensätze sicher aus mehreren MySQL-Tabellen?
MySQL-Mehrtabellen-sicheres Löschen von Datensätzen
Die direkte Verwendung des folgenden Codes zum gleichzeitigen Löschen von Zeilen aus mehreren Tabellen kann zu einem Fehler führen:
<code class="language-sql">DELETE FROM `pets` p, `pets_activities` pa WHERE p.`order` > :order AND p.`pet_id` = :pet_id AND pa.`id` = p.`pet_id`</code>
Die empfohlene Lösung ist die Verwendung der JOIN-Anweisung:
<code class="language-sql">DELETE p, pa FROM pets p JOIN pets_activities pa ON pa.id = p.pet_id WHERE p.order > :order AND p.pet_id = :pet_id</code>
Alternativ können Sie einfach die Datensätze in der Tabelle pets_activities
löschen und dabei auf die Tabelle pets
verweisen:
<code class="language-sql">DELETE pa FROM pets_activities pa JOIN pets p ON pa.id = p.pet_id WHERE p.order > :order AND p.pet_id = :pet_id</code>
Dieser Ansatz verwendet einen Alias in der FROM
-Klausel, um die zu löschende Tabelle anzugeben, und ist besonders nützlich, wenn es um komplexe Szenarien mit referenzieller Integrität geht.
Das obige ist der detaillierte Inhalt vonWie lösche ich Datensätze sicher aus mehreren MySQL-Tabellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!