Maison > base de données > tutoriel mysql > Comment supprimer correctement des lignes sur plusieurs tables dans MySQL ?

Comment supprimer correctement des lignes sur plusieurs tables dans MySQL ?

Barbara Streisand
Libérer: 2025-01-19 10:26:10
original
138 Les gens l'ont consulté

How to Correctly Delete Rows Across Multiple Tables in MySQL?

Suppression de tables croisées MySQL : dépannage des erreurs de syntaxe

Dans MySQL, la suppression simultanée de lignes de plusieurs tables nécessite une syntaxe de requête spéciale. Lorsque vous essayez d'exécuter la requête de suppression suivante :

<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>
Copier après la connexion

Vous pouvez rencontrer l'erreur suivante :

<code>Uncaught Database_Exception [ 1064 ]: You have an error in your SQL syntax; check the manual...</code>
Copier après la connexion

Cette erreur provient d'une erreur de syntaxe lors de la suppression de tables croisées. Pour résoudre ce problème, utilisez JOIN dans l'instruction DELETE :

<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>
Copier après la connexion

Alternativement, pour supprimer uniquement de la table pets_activities, vous pouvez utiliser :

<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>
Copier après la connexion

En utilisant l'instruction JOIN de cette manière, vous pouvez effectuer efficacement des opérations de suppression de tables croisées dans MySQL. Gardez à l’esprit que cette approche fonctionne également pour les suppressions de table unique avec intégrité référentielle.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal