Bonjour,
Petit problème de supression de données :
J'ai 4 tables Agent, Affectation, Carte et Commande. Une affectation, qui fait le lien entre un agent et sa carte, est liée à une unique carte et une carte est liée à une unique commande.
J'ai plusieurs états de commande et l'un de ceux ci est l'état annulé (IDEtatCommande = 4). Les commandes ayant cet état sont notées comme étant dans une corbeille.
Je veux vider la corbeille en supprimant les commandes annulées et par la suite les cartes liées à cette commande et les affectations liées à ces cartes.
Pour celà, j'ai le code suivant :
Seulement voilà, il me supprime bien les commandes annulées mais les cartes et affectations concernées existent toujours.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 DELETE FROM Commande CASCADE WHERE IDEtatCommande = '4'
Merci de me faire savoir que est le problème de mon code et quelle méthode utiliser si la mienne n'est pas la bonne.
Cordialement,
Aenur.
[EDIT] En fait j'ai utilisé un truc qu'est pas possible je viens de m'en rendre compte mais j'ai trouvé deux requêtes qui me suppriment ce que je veux :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 DELETE FROM Affectation WHERE IDCarte IN ( SELECT IDCarte FROM Carte WHERE IDCommande IN ( SELECT IDCommande FROM Commande WHERE IDEtatCommande = '4'))Et ensuite la requête qui me supprime les commandes.
Code : Sélectionner tout - Visualiser dans une fenêtre à part DELETE FROM Carte WHERE IDCommande IN (SELECT IDCommande FROM Commande WHERE IDEtatCommande = '4')
Désolé du dérangement !
Je laisse le post au cas ou quelqu'un ferait la même bêtise que moi ^^ (a moins que vous ne préfériez que je le supprime)
Partager