Suppression d'enregistrements multi-tables dans MySQL
La suppression simultanée d'enregistrements de plusieurs tables MySQL entraîne souvent des erreurs de syntaxe. Ce guide propose des solutions efficaces :
Exploiter JOIN dans les instructions DELETE
Pour supprimer des entrées des tables pets
et pets_activities
où le order
dépasse une valeur donnée et pet_id
correspond, utilisez un JOIN
:
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
Cela supprime efficacement les enregistrements correspondants dans les deux tables.
Spécifier les tables cibles
Vous pouvez également définir explicitement la table à supprimer à l'aide d'alias :
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
Cet exemple supprime uniquement de pets_activities
.
Considérations clés
JOIN
, les sous-requêtes ou les suppressions en cascade offrent des approches alternatives pour les suppressions multi-tables.JOIN
permet de préserver l'intégrité référentielle lors des suppressions de tables croisées.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!