|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||||
|
Futur Membre du Club
![]() Inscription : décembre 2005 Messages : 75 ![]() |
Bonjour,
Comment ajouter une clé étrangère sur une colonne d'une table "parent" (ou "mère" ;o) qui ferait référence à la clé primaire d'une table "enfant" (ou "fille" ;o) mais alors que la table "parent" n'est pas vide? Exemple, J'ai une table "enfant" Code :
Code :
OK, je peux copier ma table `objets` (structure et données) puis la vider et puis ce sera possible d'ajouter la relation via un Code :
Mais, ensuite, comment repeupler la table "parent" qui n'était pas vide au début? |
||||||
|
|
00
|
|
|
#2 |
|
Membre éprouvé
![]() Inscription : janvier 2003 Messages : 491 ![]() |
Il se peut que je n'ai rien compris... En tout cas je ne pense que ça soit possible et surtout je ne vois pas l'utilité de mettre des clés étrangères entre deux tables si tu ne renseignes pas la table mère. En effet, les clés étrangères permettent de respecter des contraintes entre les données or ta technique revient à passer outre ces contraintes...
__________________
"Dieu reste muet, si seulement nous pouvions convaincre l'être humain d'en faire autant." |
|
|
00
|
|
|
#3 |
|
Futur Membre du Club
![]() Inscription : décembre 2005 Messages : 75 ![]() |
J'ai dû mal m'exprimer... Posons les bases...
Celle que j'apelle table mère c'est celui qui a la clé étangère et celle que j'apelle table fille c'est la table liée. En d'autres termes, la valeur de ma colonne clé étrangère dans la table mère = valeur de ma clé primaire dans la table fille. Dans mon exemple, 'objets' est la table mère et 'categorie' la table fille. La colonne 'categorie_id' de ma table mère 'objets' fait référence à la clé primaire 'id' de ma table 'categorie' fille. Voici l'explication de ma question... J'ai à la base que la table 'objets' et celle-ci n'est pas vide. Mais la colonne 'categorie_id' était à NULL jusqu'à présents pour toutes les lignes. Maintenant, j'aimerais créer ma table 'categorie' et j'aimerais créer cette relation. Impossible! Je dois d'abord vider la table et ensuite je peux créer ma relation. Mais ensuite comment repeupler ma table 'objets' sans abotenir une erreur 1452 de type "Cannot add or update a child row: a foreign key constraint fails..."? Merci... |
|
|
00
|
|
|
#4 |
![]() ![]() ![]() Antoine DinimantConsultant en Business Intelligence Inscription : octobre 2006 Messages : 5 854 ![]() |
sur objets, enlève la déclaration de CategorieID comme NOT NULL.
|
|
|
00
|
|
|
#5 |
|
Futur Membre du Club
![]() Inscription : décembre 2005 Messages : 75 ![]() |
OK, merci!
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com