DELETE en cascade.

Résolu
moimadmax Messages postés 18 Date d'inscription mardi 2 septembre 2003 Statut Membre Dernière intervention 27 novembre 2008 - 4 févr. 2008 à 11:12
moimadmax Messages postés 18 Date d'inscription mardi 2 septembre 2003 Statut Membre Dernière intervention 27 novembre 2008 - 6 févr. 2008 à 14:52
Bonjour,

Voici mon problème. J'ai cette structure de base (http://lepetitmas.free.fr/base.png):
Pour chaques classes il y a plusieurs séquences par classes et plusieurs users par classes. Et il y a plusieurs textes par users et par sequence. ce sont toutes des relations Un a plusieurs.
Je voudrais faire une requete qui supprime une classe, avec tous les users et sequence qui en découlent ainsi que tous les textes qui decoulent des users ou des sequences.

J'ai tenté avec cette requete mais ca ne fonctionne pas:
DELETE classes, sequences, users, textes FROM classes
INNER JOIN sequences ON seq_classe = cl_id
INNER JOIN users ON usr_classe = cl_id
INNER JOIN textes ON txt_usr = usr_id
WHERE cl_id='1'

Et ca fait quelque chose de bizarre car ca ne me supprime qu'un user au lieu de tous, alors que si je fait la même chose sans m'occuper des textes cela fonctionne sans problème.

DELETE classes, sequences, users FROM classes
INNER JOIN sequences ON seq_classe = cl_id
INNER JOIN users ON usr_classe = cl_id
WHERE cl_id='1'

Quelqu'un peut il eclairer ma lanterne.

Je sais qu'il est possible de le faire en PHP, en faisant plusieurs requete mais je preferai le faire en une seule. c'est plus propre et plus rapide.

Merci de votre aide.

3 réponses

yann_lo_san Messages postés 1137 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 23 janvier 2016 23
4 févr. 2008 à 20:15
Salut,

dans :
INNER JOIN textes ON txt_usr = usr_id

si des classes/sequences. n'ont pas de texte ?

LEFT OUTER JOIN textes ON ect...
3
moimadmax Messages postés 18 Date d'inscription mardi 2 septembre 2003 Statut Membre Dernière intervention 27 novembre 2008
4 févr. 2008 à 14:24
Recopie avec j'espère les sauts de lignes. Pas d'edition ?

Bonjour,

Voici mon problème. J'ai cette structure de base
(http://lepetitmas.free.fr/base.png):
Pour chaques classes il y a
plusieurs séquences par classes et plusieurs users par classes. Et il y
a plusieurs textes par users et par sequence. ce sont toutes des
relations Un a plusieurs.
Je voudrais faire une requete qui supprime
une classe, avec tous les users et sequence qui en découlent ainsi que
tous les textes qui decoulent des users ou des sequences. J'ai tenté
avec cette requete mais ca ne fonctionne pas:
DELETE classes,
sequences, users, textes FROM classes
INNER JOIN sequences ON
seq_classe = cl_id
INNER JOIN users ON usr_classe = cl_id
INNER JOIN
textes ON txt_usr = usr_id
WHERE cl_id='1'

Et ca fait quelque chose de
bizarre car ca ne me supprime qu'un user au lieu de tous, alors que si
je fait la même chose sans m'occuper des textes cela fonctionne sans
problème.

DELETE classes, sequences, users FROM classes
INNER JOIN
sequences ON seq_classe = cl_id
INNER JOIN users ON usr_classe = cl_id

WHERE cl_id='1'

Quelqu'un peut il eclairer ma lanterne.
Je sais qu'il
est possible de le faire en PHP, en faisant plusieurs requete mais je
preferai le faire en une seule. c'est plus propre et plus rapide.

Merci
de votre aide.

>Madmax, Parce que le Java c'est bien :p
0
moimadmax Messages postés 18 Date d'inscription mardi 2 septembre 2003 Statut Membre Dernière intervention 27 novembre 2008
6 févr. 2008 à 14:52
Merci Bcp tu me sauve yann_lo_san


>Madmax, Parce que le Java c'est bien :p
0