Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Outils
Outils Forum d'entraide sur les outils pour MySQL. Avant de poster -> Outils 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 12/06/2006, 14h58   #1
Membre du Club
 
Inscription : avril 2006
Messages : 110
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 110
Points : 53
Points : 53
Par défaut import fichier texte dans table contrainte

Bonjour ! Après recherche infructueuse, je vous demande votre aide ! Voici la situation :
- toutes mes tables sont de type InnoDB
- je veux remplir l'une d'elle avec un fichier texte via phpmyadmin
- mais cette table à remplir a des contraintes de clés étrangères
- l'import ne fonctionne pas : fameuse erreur "une contrainte externe l'empêche"
- j'utilise SET FOREIGN_KEY_CHECKS = 0;
- l'import ne fonctionne pas
- j'enlève toutes les contraintes externes
- l'import fonctionne
- je tente de remettre les contraintes : ça ne marche pas
- pour comprendre là où ça coince je lance une requete pour voir quelles valeurs sont différentes entre les colonnes mère et fille
- je me rends compte qu'il y a dans la colonne fille des valeurs NULL
- or il n'y pas de valeurs NULL possibles dans la colonne de la table mère référencée

==> le problème vient-il de là ? si oui, pourquoi ?

En vous remerciant
philippe281281 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/06/2006, 16h21   #2
Provisoirement toléré
 
Avatar de Maximilian
 
Inscription : juin 2003
Messages : 2 622
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 2 622
Points : 2 505
Points : 2 505
Salut,

Il est tout à fait possible d'avoir des colonnes NULL dans la table fille (d'ailleurs il y a bien une contrainte ON DELETE SET NULL).
En revanche certaines valeurs ne se retrouvent peut-être pas dans la table mère et violent donc l'intégrité référentielle.

Dans tous les cas tu devrais utiliser un client traditionnel plutôt que PHPMyAdmin (surtout pour les commandes du style SET FOREIGN_KEY_CHECKS = 0)...
__________________
Pensez au bouton
Maximilian est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/06/2006, 16h35   #3
Membre du Club
 
Inscription : avril 2006
Messages : 110
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 110
Points : 53
Points : 53
Merci de ta réponse. Ce que tu me dis me confirme qu'il doit y avoir une erreur dans mon fichier texte. Je vais vérifier les champs ou plutôt trouver une autre méthode de conversion Access/texte que le passage par excel...
Concernant le SET FOREIGN... ça m'intéresse beaucoup ! quentends-tu par "client traditionnel" ? Il me semblait que phpMyAdmin était l'un des plus traditionnels justement ? Et surtout je pensais qu'en passant par l'interface ligne de commande de celui-ci, on se prémunissait des éventuels bugs ?
philippe281281 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/06/2006, 16h53   #4
Provisoirement toléré
 
Avatar de Maximilian
 
Inscription : juin 2003
Messages : 2 622
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 2 622
Points : 2 505
Points : 2 505
PHPMyAdmin n'est rien d'autre qu'un ensemble de scripts PHP, avec les problèmes potentiels qui en découlent : soucis lorsqu'on uploade des fichiers de grande taille, les statistiques serveur ne sont pas toujours à jour, on ne peut pas faire de procédures stockées, il y a des problèmes d'encodage entre les pages web de l'interface et les tables de la base, les messages d'erreurs ne sont parfois pas explicites ni visibles...

Ce que j'appelle client plus traditionnel c'est le client mysql en ligne de commande ou Query Browser, bref des outils qui permettent un dialogue direct avec le SGBD au plus bas niveau.
__________________
Pensez au bouton
Maximilian est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/06/2006, 17h11   #5
Membre du Club
 
Inscription : avril 2006
Messages : 110
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 110
Points : 53
Points : 53
Ok, merci, je me renseigne sur ça !
A part ça, je viens de vérifier mon fichier texte et il semblerait que le problème vienne du fait que certaines cellules sous access (style texte libre) contiennent plusieurs lignes, donc plusieurs sauts de lignes, interprétés donc comme des nouvelles lignes dans le fichier texte........ c'était difficile à voir sur un fichier de plusieurs milliers de lignes... bon à savoir pour les bambanes comme moi obligés de se dépatouiller avec des fichiers access et qui se feraient avoir ! Je confirme ça avant de mettre en résolu.
philippe281281 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/06/2006, 17h01   #6
Membre du Club
 
Inscription : avril 2006
Messages : 110
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 110
Points : 53
Points : 53
OK, c'est confirmé, le pb venait bien de là. Pour ce qui est de Query Browser, vrai, il est pas mal, seul défaut on ne peut pas imprimer les tables...
Et même avec ce logiciel la commande SET FOREIGN_KEY_CHECKS=0 n'a pas l'air de fonctionner... je vais ouvrir une autre discussion pour ça car ça me pose de gros problèmes ! Merci en tout cas Maximilian.
philippe281281 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 12h41.


 
 
 
 
Partenaires

Hébergement Web