Heim > Datenbank > MySQL-Tutorial > Wie lösche ich Zeilen über mehrere Tabellen hinweg in MySQL korrekt?

Wie lösche ich Zeilen über mehrere Tabellen hinweg in MySQL korrekt?

Barbara Streisand
Freigeben: 2025-01-19 10:26:10
Original
227 Leute haben es durchsucht

How to Correctly Delete Rows Across Multiple Tables in MySQL?

MySQL-Kreuztabellenlöschung: Fehlerbehebung bei Syntaxfehlern

In MySQL erfordert das gleichzeitige Löschen von Zeilen aus mehreren Tabellen eine spezielle Abfragesyntax. Beim Versuch, die folgende Löschabfrage auszuführen:

DELETE FROM `pets` p,
            `pets_activities` pa
      WHERE p.`order` > :order
        AND p.`pet_id` = :pet_id
        AND pa.`id` = p.`pet_id`
Nach dem Login kopieren

Möglicherweise tritt der folgende Fehler auf:

<code>Uncaught Database_Exception [ 1064 ]: You have an error in your SQL syntax; check the manual...</code>
Nach dem Login kopieren

Dieser Fehler ist auf einen Syntaxfehler beim tabellenübergreifenden Löschen zurückzuführen. Um dieses Problem zu lösen, verwenden Sie JOIN in der DELETE-Anweisung:

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
Nach dem Login kopieren

Alternativ können Sie zum Löschen nur aus der pets_activities-Tabelle Folgendes verwenden:

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
Nach dem Login kopieren

Durch die Verwendung der JOIN-Anweisung auf diese Weise können Sie tabellenübergreifende Löschvorgänge in MySQL effizient durchführen. Beachten Sie, dass dieser Ansatz auch für das Löschen einzelner Tabellen mit referenzieller Integrität funktioniert.

Das obige ist der detaillierte Inhalt vonWie lösche ich Zeilen über mehrere Tabellen hinweg in MySQL korrekt?. 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