Bonjour tout le monde
Je désire effacer les lignes avec DELETE de différentes tables.
Voici mon code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 select @numero :=26 delete etablissements,details, commandes ,corresp,agents,commerciaux,articles from etablissements,details,commandes, corresp,agents,commerciaux,articles where details.id_cmd=commandes.id_commande and commandes.id_societe=@numero and corresp.id_societe=@numero and agents.id_societe=@numero and commerciaux.id_societe=@numero and articles.id_societe=@numero and etablissements.id_societe=@numero
Cela fonctionne très bien si toutes les tables ont au moins une ligne correspondante, sinon cela ne fait rien.
Par exemple : si au moins une ligne dans TOUTES les tables correspond, alors la suppression se fait;
mais si par exemple dans la table commandes il n'y a pas de champ=@numero (la table details est liée à la table commandes), alors que les autres tables ont bien une correspondance, DELETE ne fonctionne pas.
Comme si la suppression se faisait sur le mode "tout ou rien".
Donc ma question est :
comment faire pour que la suppression soit ok dans toutes les tables, même celles qui n'ont pas de correspondance ?
(J'ai tenté EXISTS , sans résultat)
Merci !
Lepatantpato
Partager