#1452 - Cannot add or update a child row [Résolu/Fermé]

Signaler
Messages postés
45
Date d'inscription
lundi 24 octobre 2011
Statut
Membre
Dernière intervention
23 décembre 2015
-
 max -
Bonjour,

Je possède 2 tables "compagnie" et "vols", Une compagnie peut avoir plusieurs vols.

J'essaye de faire la clé etrangère de la table "compagnie" dans la table "vols".

Je travaille sous MySQL et voila ma requete que j'execute:

ALTER TABLE vols
ADD CONSTRAINT fk_CompagnieVols FOREIGN KEY (ref_Compagnie) REFERENCES compagnie(ref_Compagnie)


Et voilà l'erreur qui m'affiche :

#1452 - Cannot add or update a child row: a foreign key constraint fails ('phplogin'.<result 2 when explaining filename '#sql-cd8_42'>, CONSTRAINT 'fk_CompagnieVols' FOREIGN KEY ('ref_Compagnie') REFERENCES 'compagnie' ('ref_Compagnie'))


J'ai besoin de votre aide et vos renseignements.

Et Merci d'avance.


2 réponses

Messages postés
30167
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
30 novembre 2020
7 038
Salut,

Je ne connais pas mysql et sa syntaxe ou erreur.

Mais tes tables ont-elles vides ? Et si elles ne sont pas vides as tu vérifié qu'il n'y a pas dans la table VOLS des codes compagnies inexistants dans la table COMPAGNIE. Car s'il existe des enregistrements de ce type, la contrainte ne peut être activée puisque les données existantes ne répondent pas à la contrainte.

cdlt

Un étranger, c'est un ami qu'on n'a pas encore rencontré.
4
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 76687 internautes nous ont dit merci ce mois-ci

Messages postés
30167
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
30 novembre 2020
7 038
Donc cela n'a rien à voir, ce n'est pas la même question ;-)

Si tu fais un insert dans la table fils, il faut bien sur que la table père ne soit pas vide, il faut que les enregistrement pointés dans l'enregistrement fils existent dans la table père.
Messages postés
6
Date d'inscription
mardi 13 août 2013
Statut
Membre
Dernière intervention
19 août 2013

en fait j'ai 3 tables: projet, bsc et datas; et la table bsc contient une clé etrangère "projet_id" de meme que la table datas contient une clé etrangère "bsc_id"; j'essaye donc de remplir une colonne(la colonne nom) de ma table bsc avec le 'insert', toutes les tables etant vides biensur, seulement j'ai ce message d'erreur qui s'affiche; dois-je donc remplir la table projet d'abord?
Messages postés
30167
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
30 novembre 2020
7 038
Tu ne peux pas créer un enregistrement bsc si le projet n'existe pas.

Tu es obligé de remplir les tables dans cet ordre : projet, bsc et datas
Messages postés
6
Date d'inscription
mardi 13 août 2013
Statut
Membre
Dernière intervention
19 août 2013

ok, merci, je vais le faire et vous tenir informé
Messages postés
6
Date d'inscription
mardi 13 août 2013
Statut
Membre
Dernière intervention
19 août 2013

je viens de remplir la table projet, j'ai rempli une ligne juste pour voir, et apres je suis allé dans la table bsc, sauf que la, la meme erreur reviens toujours, je ne comprend pas
Messages postés
148
Date d'inscription
mardi 5 mai 2009
Statut
Membre
Dernière intervention
26 juillet 2012
45
Hello,


Une des tables est-elle vide ?

Vérifiez que les Ref_compagnie de la table VOLS sont bien référencés dans la table Compagnie



DROE
Pour moi, ma table n'était pas vide.
Merci Droe