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 15/09/2011, 14h43   #1
Nouveau Membre du Club
 
Inscription : novembre 2008
Messages : 180
Détails du profil
Informations forums :
Inscription : novembre 2008
Messages : 180
Points : 28
Points : 28
Par défaut LOAD DATA INFILE problème

Bonjour,

J'ai un énorme soucis avec le LOAD DATA INFILE et mon fichier csv

ma table :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
 
 
CREATE TABLE `auto_nombre_a` (
  `pays` varchar(200) DEFAULT NULL,
  `indicateur` varchar(200) DEFAULT NULL,
  `periode` varchar(200) DEFAULT NULL,
  `nombre` varchar(50) DEFAULT NULL,
  `unite` varchar(200) DEFAULT NULL,
  `source` varchar(200) DEFAULT NULL,
  `date` date DEFAULT '2001-01-01',
  `valeur` varchar(200) DEFAULT NULL,
  FULLTEXT KEY `pays` (`pays`,`indicateur`,`periode`,`unite`,`source`,`valeur`,`nombre`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
Mon fichier DE_auto_nombre_a.csv :

Code :
1
2
3
 
Allemagne;immatriculations auto;annuel;millions;nombre;source_a;01/01/01;0,56
Allemagne;immatriculations auto;annuel;millions;nombre;source_a;01/01/02;0,59
Ma requête :
Code :
LOAD DATA INFILE 'DE_auto_nombre_a.csv' INTO TABLE auto_nombre_a FIELDS TERMINATED BY ';' LINES TERMINATED BY '\r\n'
Le résultat de ma requête :

Allemagne | Immatriculations auto | annuel | millions | nombre source_ | 0000-00-00 | 0,56Allemagne |

Alors que je ne devrais pas avoir qu'une ligne et pourquoi il me colle Allemagne de ma 2eme ligne ???

Merci
tidou95220 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/09/2011, 14h51   #2
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 11 029
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 11 029
Points : 18 327
Points : 18 327
Envoyer un message via MSN à CinePhil
En plus tu perds tes dates parce qu'elles ne sont pas au format standard SQL !
=> Passe la colonne de date (qui ne devrait pas s'appeler "date" parce que c'est un mot réservé du langage SQL) en VARCHAR et fais la conversion plus tard.

Citation:
Envoyé par Doc MySQL
Si vous ne spécifiez par de clause LINES, les valeurs par défaut sont :
LINES TERMINATED BY '\n'

...
Note : si vous avez généré le fichier sur Windows, vous devrez peut-être utiliser LINES TERMINATED BY '\r\n' pour lire le fichier correctement, car les programmes Windows utilisent généralement deux caractères comme fin de ligne. Certains programmes, comme WordPad, peuvent utiliser \r comme terminateur de ligne lors de l'écriture. Pour lire ces fichiers, utilisez LINES TERMINATED BY '\r.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/09/2011, 15h12   #3
Nouveau Membre du Club
 
Inscription : novembre 2008
Messages : 180
Détails du profil
Informations forums :
Inscription : novembre 2008
Messages : 180
Points : 28
Points : 28
Après changement, toujours la même chose. Pourtant, quand je fais un import automatique sans passer par le LOAD INFILE, il me stocke ça proprement... mais moi j'ai besoin de ma ligne de commande LOAD INFILE pour la mettre dans mon PHP
tidou95220 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/09/2011, 15h55   #4
Nouveau Membre du Club
 
Inscription : novembre 2008
Messages : 180
Détails du profil
Informations forums :
Inscription : novembre 2008
Messages : 180
Points : 28
Points : 28
Ce n'est pas normal mon problème
tidou95220 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/09/2011, 16h29   #5
Expert Confirmé
 
Avatar de Maljuna Kris
 
Homme Avcxjo MoKo
Retraité
Inscription : novembre 2005
Messages : 2 530
Détails du profil
Informations personnelles :
Nom : Homme Avcxjo MoKo
Âge : 60

Informations professionnelles :
Activité : Retraité
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : novembre 2005
Messages : 2 530
Points : 3 523
Points : 3 523
Saluton,
le dernier FIELD de chaque ligne n'est pas TERMINATED BY ';'
__________________
Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof
articles : Comment émuler un tableau croisé [quasi] dynamique
et : Une énigme mathématique résolue avec MySQL
recommande l'utilisation de PDO (PHP5 Data Objects)
Maljuna Kris est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/09/2011, 18h29   #6
Nouveau Membre du Club
 
Inscription : novembre 2008
Messages : 180
Détails du profil
Informations forums :
Inscription : novembre 2008
Messages : 180
Points : 28
Points : 28
oui un '\n'
tidou95220 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/09/2011, 20h15   #7
Expert Confirmé
 
Avatar de Maljuna Kris
 
Homme Avcxjo MoKo
Retraité
Inscription : novembre 2005
Messages : 2 530
Détails du profil
Informations personnelles :
Nom : Homme Avcxjo MoKo
Âge : 60

Informations professionnelles :
Activité : Retraité
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : novembre 2005
Messages : 2 530
Points : 3 523
Points : 3 523
Et non LINES TERMINATED BY '\r\n'
__________________
Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof
articles : Comment émuler un tableau croisé [quasi] dynamique
et : Une énigme mathématique résolue avec MySQL
recommande l'utilisation de PDO (PHP5 Data Objects)
Maljuna Kris est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/09/2011, 10h07   #8
Nouveau Membre du Club
 
Inscription : novembre 2008
Messages : 180
Détails du profil
Informations forums :
Inscription : novembre 2008
Messages : 180
Points : 28
Points : 28
Quand je mets LINES TERMINATED BY '\r\n' ça plante pour moi mais '\n' fonctionne... Ne me demande pas pourquoi ^^
tidou95220 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 00h36.


 
 
 
 
Partenaires

Hébergement Web