2014-05-22 2 views
0

J'ai une base de données avec beaucoup de tables, je veux simplement supprimer toutes les lignes de n'importe quelle table qui ont un champ 'id_shop' avec une valeur de '2' est-ce que je peux faire ceci avec MySQL, sans énumérer tous les noms de table dans la requête?Comment puis-je supprimer des lignes de plusieurs tables par une certaine clause where

Merci

+0

Cela a déjà été répondu. http://stackoverflow.com/questions/3331992/how-to-delete-from-multiple-tables-in-mysql En fait, non. –

+0

J'ajouterais ... il y a de bonnes raisons à cela. Si vous avez défini CASCADE DELETE, le SGBDR sait comment le faire et peut le faire pour vous lorsque vous supprimez le magasin. Mais sans cela, vous ne pouvez pas simplement supprimer d'un tas de tables. Vous pouvez avoir des clés et des dépendances étrangères entre les tables. Vous devez déterminer l'ordre correct dans lequel exécuter la suppression. Si cela arrive souvent, écrivez un script ou une procédure stockée, vous pouvez donc le réutiliser;) – Frazz

Répondre

0

Cela fonctionne:

Delete a,b,c From tb1 a 
Inner join tb2 b 
On (a.id=b.id) 
Inner join tb3 c 
On (b.id=c.id) 
Questions connexes