faksouha
Messages postés63Date d'inscriptionmercredi 18 mai 2005StatutMembreDernière intervention 4 mai 2011
-
20 mai 2007 à 20:12
chaibat05
Messages postés1883Date d'inscriptionsamedi 1 avril 2006StatutMembreDernière intervention20 novembre 2007
-
21 mai 2007 à 16:03
salut;
je veux supprimer un anregistrement de la table "acteur" vérifiant une condition de ACTcod qui est le id de la table "acteur". le problème c'est j'ai une autre table "jouer" qui a une clé primaire composée de (actcod,actfilm) et j'arrive pas à trouver la bonne requete pour ça.
j'ai utilisé cette requete : delete from acteur where actcod IN(select actcod from jouer where actcod=numéro_à_supprimer);
cela ne génère pas une erreur mais elle ne supprime pas.
de l'aide!!!!!!!!!!!
A voir également:
Supprimer un enregistrement d'une table jointe avec d'autres tables
chaibat05
Messages postés1883Date d'inscriptionsamedi 1 avril 2006StatutMembreDernière intervention20 novembre 20072 20 mai 2007 à 21:46
Bonsoir,
t' as le choix entre deux solution alors:
1° solution
Supprimer dans la même foulée,en deux requête successives et dans l' ordre :
- tous les enregistrements de la table Jouer dont le actcod=actcod=numéro_à_supprimer
-tous les enregistrements de la table Acteurdont le actcod=actcod=numéro_à_supprimer
cs_corsica
Messages postés147Date d'inscriptionlundi 13 mai 2002StatutMembreDernière intervention15 février 2010 20 mai 2007 à 23:00
+1 pour la solution de chaibat05.
Le Delete ne se fait pas car tu as une clé primaire dans "jouer" composée d'une clé étrangére ( actcod ) , tu ne peux donc supprimer les enregistrements de la table acteur que si les "fils" de l'acteur sont deletés aussi ...
chaibat05
Messages postés1883Date d'inscriptionsamedi 1 avril 2006StatutMembreDernière intervention20 novembre 20072 20 mai 2007 à 23:43
Salut,
non cher ami , non...!
En résumé:
J' ai un acteur et j' ai une série de films de ce même acteur.
Cet acteur peut avoir joué dans plusieurs films ou aucun.
Si cet acteur a joué dans 10 films et que je veux les supprimer tous,
rien ne m' interdirait de le faire.Il se retrouve alors au même titre
qu' un acteur n' ayant joué dans aucun film de ma collection.
Libre à moi par la suite de le supprimer ou pas de ma table Acteur.
Mais le contraire est interdit par la contrainte de la relation.
C' est à dire que je ne pourrais supprimer un acteur si tous les
enregistrements de la table jouer sont supprimés au préalable.
d' ou
1° solution
Supprimer dans la même foulée,en deux requêtes successives et dans l' ordre :
- tous les enregistrements de la table Jouer dont le ctcod= actcod=numéro_à_supprimer
-tous les enregistrements de la table Acteur dont le tcod =actcod=numéro_à_supprimer
Dixit.
A ce point j' ai pas été clair ?
cs_Nicko11
Messages postés1141Date d'inscriptionmercredi 7 mars 2007StatutMembreDernière intervention19 septembre 20073 21 mai 2007 à 08:50
Salut,
tu es bien d'accord que si ca ne genere pas d'erreur, c'est qu'il ne trouve pas d'enregistrement liés à ta requete. Donc je te conseille d'en vérifier tous les paramètres.
"delete from acteur where actcod IN(select actcod from jouer where actcod= numéro_à_supprimer);"
Est ce que "select actcod from jouer where actcod=numéro_à_supprimer" te renvoie bien a des enregistrements. C'est si c'est vide, il est normal que ca ne supprime rien.
Qu'est ce que " numéro_à_supprimer " ? Si c'est une variable, ta requete est fausse, car il vaut chercher un enregistrement ou le champ actcod = numéro_à_supprimer et pas la valeur de la variable.
faksouha
Messages postés63Date d'inscriptionmercredi 18 mai 2005StatutMembreDernière intervention 4 mai 2011 21 mai 2007 à 12:00
bonjour;
merci à tous pour votre aide, en faite j'ai resolue le problème, j'ai du supprimer les enregistrement que je veux de la table jouer puis j'ai fais la suppression pour la table acteur.
mais ce qui m'inquiète maintenant : et si j'ai une grande BD et la table acteur est liée à plusieurs autre tables, est ce que je dois faire la suppresion de toutes mes autres tables puis retourner à la table acteur pour affectuer la suppression voulu???? il me parrait que c'est trooooooooops. ya pas peut etre possibilité de mettre le tous dans une seule requete?
faksouha
Messages postés63Date d'inscriptionmercredi 18 mai 2005StatutMembreDernière intervention 4 mai 2011 21 mai 2007 à 12:28
"numéro_à_supprimer" normalement c'est une variable, mais la j'ai fais le teste sur une valeur fixe, et il y'a des enregistrements correspondant à ce numéro mais ça donne rien.
chaibat05
Messages postés1883Date d'inscriptionsamedi 1 avril 2006StatutMembreDernière intervention20 novembre 20072 21 mai 2007 à 16:03
Salut,
Pourquoi vouloir supprimer un acteur de ta table Acteurs ?
Normalement ça doit rester . Peut être que tu e aura besoin
par la suite pour lui associer un film.
Mais si vraiment tu veux t' en debarasser et de tout son historique,
coches l' option "Supprimer en cascade" dans les propriété de la relations
et ceci pour toutes les tables auxquelles il est lié quelqu' en soit le nombre.
Un Delete sur la table Acteurs suffira pour tout balayer.