Précédent   Forum des professionnels en informatique > Bases de données > MySQL
MySQL Forum d'entraide MySQL. Avant de poster -> FAQ MySQL, Tutoriels 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 20/06/2008, 16h13   #1
Invité de passage
 
Inscription : juin 2008
Messages : 31
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 31
Points : 3
Points : 3
Par défaut probleme de contrainte

Bonjour j'ai un problème avec ma base de donnés sous mysql :
Il y a 3 tables :
une table livre(codelivre,...
une table couplage(codecouplage,
et une table coupler qui a pour clé primaire, la clé primaire de livre et de couplage :
coupler(codelivre,codecouplage)

J'ai ajouter deux contraintes :
alter table coupler
add constraint fk_coupler
foreign key(codelivre) references livre(codelivre)

alter table coupler
add constraint fk_coupler2
foreign key(codecouplage) references couplage(codecouplage)

Les 2 contraintes sont correctement ajouté mais lorsque je veux loader le fichier coupler.txt dans la table coupler j'obtiens le message d'erreur suivant :

[root@localhost:3306_1] ERROR 1452: Cannot add or update a child row: a foreign key constraint fails (`navision`.`coupler`, CONSTRAINT `fk_coupler` FOREIGN KEY (`codelivre`) REFERENCES `livre` (`codelivre`))

J'ai pourtant vérifié que tout les codelivre existe préalablement dans la table livre. Par contre si j'essaie d'en rentrer à la main la il les accepte.

J'espère avoir été suffisamment claire, merci d'avance.
clemse31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/06/2008, 18h04   #2
ced
Rédacteur/Modérateur

 
Avatar de ced
 
Homme Cédric Duprez
Inscription : avril 2002
Messages : 3 823
Détails du profil
Informations personnelles :
Nom : Homme Cédric Duprez
Âge : 36
Localisation : France, Loiret (Centre)

Informations professionnelles :
Secteur : Agroalimentaire - Agriculture

Informations forums :
Inscription : avril 2002
Messages : 3 823
Points : 6 408
Points : 6 408
Bonjour,

Le problème peut venir de la façon dont tu charges le fichier...
Quel est le format de chacune des colonnes ?
Peut-on voir un extrait du fichier et la commande de chargement que tu lances ?

ced
ced est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/06/2008, 14h06   #3
Invité de passage
 
Inscription : juin 2008
Messages : 31
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 31
Points : 3
Points : 3
alors, la format de toutes les colonnes est char(10)
l
a commande que je lance est :

load data local infile "D:/..../coupler.txt" into table coupler
fields terminated by ";"

voici un extrait de mon fichier txt :

AAG;CG
AAG;SP
AGE;CG
AGE;DO
AGE;EC
AGE;SG
BAG;CG
BAG;DO

merci
clemse31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/06/2008, 15h39   #4
Membre régulier
 
Avatar de guigouz
 
Guillaume Zurbach
Étudiant
Inscription : mars 2008
Messages : 84
Détails du profil
Informations personnelles :
Nom : Guillaume Zurbach
Âge : 22
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mars 2008
Messages : 84
Points : 87
Points : 87
Bonsoir...

Essaye de mettre des quotes ou doubles-quotes autour de tes valeurs :
Si ça ne fonctionne pas essaye avec la requête suivante :
Code :
1
2
3
LOAD DATA LOCAL INFILE '"D:/..../coupler.txt' INTO TABLE coupler
  FIELDS TERMINATED BY ',' ENCLOSED BY '"'
  [ LINES TERMINATED BY '\n' ];
Le LINES TERMINATED BY est une troisième possibilité...
Un peu de doc si ça peut aider : http://dev.mysql.com/doc/refman/5.0/en/load-data.html
J'espère que tu trouveras une solution. Bonne continuation !
guigouz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/06/2008, 17h39   #5
ced
Rédacteur/Modérateur

 
Avatar de ced
 
Homme Cédric Duprez
Inscription : avril 2002
Messages : 3 823
Détails du profil
Informations personnelles :
Nom : Homme Cédric Duprez
Âge : 36
Localisation : France, Loiret (Centre)

Informations professionnelles :
Secteur : Agroalimentaire - Agriculture

Informations forums :
Inscription : avril 2002
Messages : 3 823
Points : 6 408
Points : 6 408
Ca pourrait aussi venir des espaces qui sont absents dans le fichier, alors que dans la base, un char(10) remplit avec 3 lettres va créer 7 espaces à droite .

Ou alors, le retour à la ligne : essaie d'ajouter LINES TERMINATED BY '\r\n' à la fin de la commande d'import.

ced
ced 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 02h57.


 
 
 
 
Partenaires

Hébergement Web