Maison > base de données > tutoriel mysql > Comment supprimer correctement les enregistrements de plusieurs tables dans MySQL ?

Comment supprimer correctement les enregistrements de plusieurs tables dans MySQL ?

Susan Sarandon
Libérer: 2025-01-19 10:31:09
original
509 Les gens l'ont consulté

How to Properly Delete Records from Multiple Tables in MySQL?

Compétences en suppression d'enregistrements multi-tables MySQL

Supprimer simultanément des enregistrements de plusieurs tables MySQL est une tâche complexe. L'utilisation directe d'une instruction DELETE avec une clause WHERE contenant plusieurs références de table échouera généralement. Par exemple, le code suivant :

<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

Produit généralement des erreurs comme celle-ci :

Uncaught Database_Exception [1064] : Vous avez une erreur dans votre syntaxe SQL ; consultez le manuel qui correspond à la version de votre serveur MySQL pour connaître la bonne syntaxe à utiliser près de 'p, pets_activities pa...'

La bonne approche consiste à utiliser le mot-clé JOIN. Le code modifié est le suivant :

<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

Si vous devez uniquement supprimer des enregistrements dans la table pets_activities, vous pouvez utiliser le code suivant :

<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

Ces méthodes peuvent supprimer efficacement les enregistrements de plusieurs tables dans MySQL. Bien entendu, il existe d'autres méthodes de suppression de table unique impliquant l'intégrité référentielle, telles que EXISTS, NOT EXISTS, IN et NOT IN. Cependant, la syntaxe MySQL ci-dessus fournit une solution générale pour la suppression de plusieurs tables, en particulier lorsqu'il s'agit de scénarios de suppression complexes.

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