Rassembler 3 requetes Delete, impossible ?

  • Auteur de la discussion Auteur de la discussion sff
  • Date de début Date de début
WRInaute impliqué
Bonjour, je souhaite réunir 3 requêtes delete qui très semblables mais j'ai essayé diverses techniques, impossible de supprimer tous les enregistrements dans lesquels le champ user contient l'id_user en question

Voici les 3 requêtes que j'aimerais réunir :

Code:
$delete_1 = $pdo->query("DELETE FROM table 1 WHERE user='$id_user'");
$delete_2 = $pdo->query("DELETE FROM table 3 WHERE user='$id_user'");
$delete_3 = $pdo->query("DELETE FROM table 3 WHERE user='$id_user'");

Merci
 
WRInaute discret
Bonjour,

Essaye un truc dans ce style avec un join :

DELETE FROM table1 INNER JOIN table3
WHERE table1.id=table3.id AND table1.id='$id_user'

C'est normal que $delete_2 et $delete_3 soient similaires ?
 
WRInaute passionné
La commande Delete ne fonctionne que sur UNE table, pas plusieurs normalement.

Ensuite, il faudrait essayer Delete from table1, table2, table3 where... mais je ne pense pas que cela changera grand chose en performance (voire être même plus lent!).
 
WRInaute impliqué
Qu'est-ce qui pose problème d'avoir 3 requêtes ?
Si c'est juste pour la forme, ca ne sert à rien.
Si c'est une question d'intégrité (supprimé dans table1 mais planté sur table2), alors utilise les transitions.
 
WRInaute impliqué
En gros, une fois la transaction initiée, toutes les requêtes effectuées sont exécutées mais le résultat n'est "visible" que par la connexion initiatrice. Ensuite, pour que le résultat soit officiellement appliqué, il faut effectuer un commit. Si la connexion est interrompue (code planté, coupure réseau entre PHP > MySQL, etc.), un rollback est effectué (les requêtes sont annulées).
Le rollback peut être effectué manuellement dans le code.

Bref, c'est pratique.
 
Discussions similaires
Haut