IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes MySQL Discussion :

Importation d'un fichier .csv vers MySQL


Sujet :

Requêtes MySQL

  1. #1
    Membre habitué
    Avatar de xenos
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    400
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 400
    Points : 197
    Points
    197
    Par défaut Importation d'un fichier .csv vers MySQL
    Bonjour,

    Je travaille avec Wamp5 1.7.2., PHP 5.2.3., Apache 2.2.4.

    J'aimerais importer le fichier .csv ci-joint. Il y a 6 colonnes.

    Pour ce faire, j'exécute le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    LOAD DATA INFILE 'D:/nace.csv'
    INTO TABLE nace
    FIELDS
    TERMINATED BY '$'
    ENCLOSED BY '"'
    ESCAPED BY '\\'
    LINES
    STARTING BY ''
    TERMINATED BY '\n'
    Le problème est que lors de l'importation dans la table, toutes les colonnes sont décalé.

    Par exemple, à la dernière colonne de la première ligne, on trouve :

    This item excludes"
    "1

    Alors que le "1" devrait faire parti de la première colonne de la seconde ligne. De même, les " devraient être supprimés.

    Voici le code de la table :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    CREATE TABLE `nace` (
      `level` varchar(10) NOT NULL,
      `code` varchar(10) NOT NULL,
      `description` varchar(100) NOT NULL,
      `includes` varchar(1000) NOT NULL,
      `also includes` varchar(1000) NOT NULL,
      `excludes` varchar(1000) NOT NULL
    );
    En conclusion, comment puis je faire en sorte d'importer correctement mon fichier .csv ?

    D'avance merci pour vos réponses.



    xenos

  2. #2
    Membre confirmé
    Avatar de Mindiell
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    735
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 735
    Points : 546
    Points
    546
    Par défaut
    Doc mysql :
    If you specify no LINES clause, the defaults are the same as if you had written this:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    LINES TERMINATED BY '\n' STARTING BY ''
    ne rajoute donc pas ça dans ta requête puisqu'il le fait tout seul.

    Pourquoi utilises-tu un dollar pour séparer tes champs ? une virgule ou une tabulation serait mieux. Dans tous les cas, vire les guillemets, puisqu'ils ne te servent à rien, c'est le $ qui sépare tes champs, non ?
    Mindiell
    "Souvent, femme barrit" - Elephant man

  3. #3
    Membre habitué
    Avatar de xenos
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    400
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 400
    Points : 197
    Points
    197
    Par défaut
    Merci pour ta réponse Mindiell.

    Citation Envoyé par Mindiell
    ne rajoute donc pas ça dans ta requête puisqu'il le fait tout seul.
    En supprimant les lignes que tu m'as conseillé, ça me donne ce code. Cependant, ça donne toujours autant d'erreurs lorsque j'importe le fichier ... :s

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    LOAD DATA INFILE 'D:/nace.csv'
    INTO TABLE nace
    FIELDS
    TERMINATED BY '$'
    ENCLOSED BY '"'
    ESCAPED BY '\\'
    Citation Envoyé par Mindiell
    Pourquoi utilises-tu un dollar pour séparer tes champs ? une virgule ou une tabulation serait mieux.
    En quoi le fait de changer le $ par une virgule va faire en sorte que le code va fonctionner ?

    J'ai malgré tout généré un nouveau fichier csv, qui remplace les "$" par des "," En annexe se trouve le nouveau fichier nace_1.csv dont les colonnes sont séparé par des ","

    Cependant à l'exécution de ce code, il y a toujours autant d'erreurs ... :s

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    LOAD DATA INFILE 'D:/nace_1.csv'
    INTO TABLE nace
    FIELDS
    TERMINATED BY ','
    ENCLOSED BY '"'
    ESCAPED BY '\\'
    Citation Envoyé par Mindiell
    Dans tous les cas, vire les guillemets, puisqu'ils ne te servent à rien, c'est le $ qui sépare tes champs, non ?
    Tu me conseille de supprimer les guillemets qui se trouvent au début et à la fin d'une chaine de caractère qui constitue une colonne ? Si c'est ça, il m'est impossible de générer le fichier .csv sans ces guillemets.

Discussions similaires

  1. [XL-2010] Importer fichier CSV vers MYSQL en VBA Excel
    Par 6116d dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 17/06/2014, 16h40
  2. import d'un fichier .csv vers Mysql
    Par katebe dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 18/10/2009, 22h31
  3. importation fichier csv vers mysql par php
    Par frboyer dans le forum Langage
    Réponses: 4
    Dernier message: 26/05/2009, 09h21
  4. Réponses: 1
    Dernier message: 29/04/2008, 12h54
  5. [Conseil] Import de fichier CSV vers MySQL
    Par ShinJava dans le forum JDBC
    Réponses: 6
    Dernier message: 15/03/2005, 19h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo