Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment supprimer de plusieurs tables dans MySQL ?

Utilisez un JOIN dans le DELETE déclaration.

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

Vous pouvez également utiliser...

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

...à supprimer uniquement de pets_activities

Voir ceci .

Pour les suppressions de table unique, mais avec l'intégrité référentielle, il existe d'autres façons de faire avec EXISTS , NOT EXISTS , IN , NOT IN et etc. Mais celui ci-dessus où vous spécifiez de quelles tables supprimer avec un alias avant le FROM clause peut vous sortir plus facilement de quelques points assez difficiles. J'ai tendance à contacter un EXISTS dans 99% des cas et puis il y a les 1% où cette syntaxe MySQL prend la journée.