Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Requêtes
Requêtes Forum d'entraide sur les requêtes MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 01/05/2011, 19h44   #1
 
Homme
Collégien
Inscription : mars 2011
Messages : 45
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Belgique

Informations professionnelles :
Activité : Collégien

Informations forums :
Inscription : mars 2011
Messages : 45
Points : -3
Points : -3
Par défaut requête pour supprimer une clé a la fois primaire dans une table et étrangère dans une autre

Bonjour ,
J'ai les 2 tables suivantes :

tranche: qui contient les colonnes numerotranche et libelletranche
compte: qui contient numerocompte , numerotranche

J'ai les données suivantes dans les 2 tables : (TR1,libelle1) (n1,TR1)

Sachant que le numero tranche est clé primaire dans tranche et étrangère dans l'autre, je veux supprimer les lignes qui contiennent TR1 dans la base de données, par exemple les 2 données que j'ai mises auparavant.

J'utilise tout d'abord la requête pour supprimer TR1 quand elle appartient à tranche par :

Code :
1
2
ALTER TABLE tranche
DELETE numerotranche WHERE numerotranche='TR1'
Mais il me sort l'erreur suivante :

Citation:
cannot delete or update a parent row a foreign key restreint fails
qui signifie littéralement qu'on ne doit pas la toucher car elle est aussi clé etrangère.

Donc, j'aimerais vous demander si je peux, avec une seule requête, remédier à ce problème.

merci
ibuto est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/05/2011, 20h36   #2
Modérateur
 
Avatar de sevyc64
 
Homme Yves
Développeur informatique
Inscription : janvier 2007
Messages : 3 878
Détails du profil
Informations personnelles :
Nom : Homme Yves
Âge : 39
Localisation : France, Pyrénées Atlantiques (Aquitaine)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : janvier 2007
Messages : 3 878
Points : 7 655
Points : 7 655
Touy dépend de la contrainte que tu as mise lors de la création de la clé étrangère. Si tu as mis une contrainte de suppression en cascade, alors de supprimer la ligne référencée dans une table supprimera aussi automatiquement les lignes là référençant dans les autres tables.

Si tu n'as mis aucune contrainte, effectivement tu ne peux pas supprimer une ligne tant qu'elle est encore référencée dans une autre table.
Il te faudra d'abord supprimer les lignes la référençant dans les autres tables, avant de pouvoir supprimer cette ligne là.

Par contre, je ne comprends pas l'utilité de ton alter table tranche ici !
__________________
Sevyc64 --- Le partage est notre force

NON AU LANGAGE SMS & FAUTES VOLONTAIRES SUR LES FORUMS
sevyc64 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h37.


 
 
 
 
Partenaires

Hébergement Web