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 28/07/2011, 10h14   #1
Nouveau Membre du Club
 
Inscription : novembre 2008
Messages : 177
Détails du profil
Informations forums :
Inscription : novembre 2008
Messages : 177
Points : 28
Points : 28
Par défaut Cannot add or update a child row: a foreign key constraint fails

Bonjour,

J'ai un petit souci lors de l'ajout de données... d'où peut venir mon problème ?
Ça fait 24h que je suis planté dessus...

Citation:
#1452 - Cannot add or update a child row: a foreign key constraint fails (`developpez`.`balance_des_paiements_annuelle`, CONSTRAINT `balance_des_paiements_annuelle_ibfk_1` FOREIGN KEY (`id_pays`) REFERENCES `pays` (`id_pays`) ON DELETE NO ACTION ON UPDATE NO ACTION)
Ma table balance_des_paiements_annuelle :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
 
-
-- Structure de la table `balance_des_paiements_annuelle`
--
 
CREATE TABLE IF NOT EXISTS `balance_des_paiements_annuelle` (
  `annee` varchar(50) NOT NULL,
  `balance_milliards` varchar(50) NOT NULL,
  `balance_pct_pib` varchar(50) NOT NULL,
  `id_pays` int(11) DEFAULT NULL,
  KEY `id_pays` (`id_pays`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
 
--
-- Contenu de la table `balance_des_paiements_annuelle`
--
 
 
--
-- Contraintes pour les tables exportées
--
 
--
-- Contraintes pour la table `balance_des_paiements_annuelle`
--
ALTER TABLE `balance_des_paiements_annuelle`
  ADD CONSTRAINT `balance_des_paiements_annuelle_ibfk_1` FOREIGN KEY (`id_pays`) REFERENCES `pays` (`id_pays`) ON DELETE NO ACTION ON UPDATE NO ACTION;
Ma table pays :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
--
-- Structure de la table `pays`
--
 
CREATE TABLE IF NOT EXISTS `pays` (
  `id_pays` int(11) NOT NULL AUTO_INCREMENT,
  `nom_p` varchar(50) NOT NULL,
  PRIMARY KEY (`id_pays`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;
 
--
-- Contenu de la table `pays`
--
 
INSERT INTO `pays` (`id_pays`, `nom_p`) VALUES
(1, 'Bolivie'),
(2, 'Congo'),
(3, 'Bresil');
merci
tidou95220 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/07/2011, 10h23   #2
Nouveau Membre du Club
 
Inscription : novembre 2008
Messages : 177
Détails du profil
Informations forums :
Inscription : novembre 2008
Messages : 177
Points : 28
Points : 28
J'ai bien un ID 2 dans ma table pays et dans ma colonne id_pays de ma table balance_des_paiements_annuelle ma colonne id_pays est remplie de 2.... je ne comprends pas.
tidou95220 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/07/2011, 10h39   #3
Nouveau Membre du Club
 
Inscription : novembre 2008
Messages : 177
Détails du profil
Informations forums :
Inscription : novembre 2008
Messages : 177
Points : 28
Points : 28
Tout simplement le format de mon fichier.....c'était pas des tabulations comme séparateur mais n'importe quoi ^^
tidou95220 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2011, 17h26   #4
Invité de passage
 
Inscription : septembre 2006
Messages : 11
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 11
Points : 3
Points : 3
Si ça peut dépanner quelqu'un, j'apporte une solution supplémentaire à ce message d'erreur.

J'ai créée la structure de ma base MySQL avec le logiciel MySQL Workbench. L'erreur "Cannot add or update a child row: a foreign key constraint fails" sur les requêtes d'une seule table sans que je comprenne pourquoi.

En fait, la table en question était configuré avec le moteur MySQL "InnoDB" au lieu de "MyISAM" dans le logiciel...

Une fois repassé avec le bon moteur, ça marche très bien.
GhosterK est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h49.


 
 
 
 
Partenaires

Hébergement Web