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

Administration MySQL Discussion :

Importer un fichier CSV en choisissant les colonnes


Sujet :

Administration MySQL

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2014
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2014
    Messages : 51
    Points : 29
    Points
    29
    Par défaut Importer un fichier CSV en choisissant les colonnes
    Bonjour,

    je tente d'importer les données d'un fichier csv dans une table de ma base de données.

    Mon fichier csv contient 6 colonnes.
    Ma table contient 3 colonnes.

    Serait-il possible de pouvoir remplir les 3 colonnes de ma table avec les colonnes 1, 3 et 4 du fichier csv ?

    De plus, dans cette instruction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    LOAD DATA INFILE 'C:/Documents and Settings/Administrateur/Mes documents/Téléchargements/mon_fichier.csv' 
    INTO TABLE ma_bdd.ma_table
    FIELDS TERMINATED BY ';'
    LINES TERMINATED BY '\r\n'
    IGNORE 1 LINES;
    La première ligne de mon fichier csv n'est pas ignorée et se retrouve dans ma table. Pourquoi ?

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2014
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2014
    Messages : 51
    Points : 29
    Points
    29
    Par défaut
    On ne peut pas choisir les colonnes d'un fichier csv à importer dans une table ?

  3. #3
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 014
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 014
    Points : 23 702
    Points
    23 702
    Par défaut
    Bonjour,

    Il suffit de lire la documentation (certes en anglais...) de la commande LOAD DATA INFILE :
    You can also discard an input value by assigning it to a user variable and not assigning the variable to a table column:

    LOAD DATA INFILE 'file.txt'
    INTO TABLE t1
    (column1, @dummy, column2, @dummy, column3);
    Donc, c'est possible : vous mettez une variable sur les colonnes du fichier qui ne correspondent à aucune colonne de votre table.
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2014
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2014
    Messages : 51
    Points : 29
    Points
    29
    Par défaut
    ça fonctionne, merci.

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2012
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Transports

    Informations forums :
    Inscription : Octobre 2012
    Messages : 1
    Points : 1
    Points
    1
    Par défaut juste pour le fun
    Super génial,
    cela va me gagner un temps fooooouuuuuu !

  6. #6
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 378
    Points : 19 054
    Points
    19 054
    Par défaut
    Salut wam111.

    Voici un exemple de chargement d'une table mysql à partir d'un fichier Excel (au format .csv) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    LOAD DATA LOCAL INFILE 'fichier.txt'
         INTO TABLE `Cities`
         CHARACTER SET latin1
         FIELDS TERMINATED            BY ','
                OPTIONALLY ENCLOSED   BY '\"'
                ESCAPED               BY '\\'
         LINES  TERMINATED            BY '\r\n'
         IGNORE 0 LINES
         (@F1, @F2, @F3, @F4, Population, Latitude, Longitude, @F8)
         set Country = trim(@F1),
                City = trim(@F2),
          AccentCity = trim(@F3),
              Region = trim(@F4),
                Date = str_to_date(trim(@F8), '%d/%c/%Y %H:%i:%s'),;
    Les trois colonnes "Population, Latitude, Longitude" sont chargées sans modification.

    Par contre, les cinq autres colonnes peuvent subir une mise en forme.
    Dans le cas de la fonction trim(), je supprime les espaces avant et après de la chaîne de caractères.
    Et dans le cas de la date, je passe par un changement de format puisque ma date, dans le fichier Excel s'écrit : DD/MM/YYYY HH:MM:SS
    Comme j'utilise le type date sous MySql, je suis obligé d'avoir le format YYYY-MM-DD HH:MM:SS

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Travailler sur un fichier Csv et remodeler les champs en colonnes
    Par souhail72 dans le forum Développement de jobs
    Réponses: 21
    Dernier message: 28/11/2013, 08h08
  2. importer un fichier CSV mais en précisant les colonnes
    Par jejeman dans le forum Débuter
    Réponses: 2
    Dernier message: 27/07/2009, 10h52
  3. Importer 1 Fichier CSV avec des ";" dans les champs
    Par opaillon dans le forum Import/Export
    Réponses: 3
    Dernier message: 15/01/2009, 14h23
  4. Réponses: 3
    Dernier message: 11/06/2007, 11h20
  5. Importation de fichier CSV vers une base Interbase
    Par PrinceMaster77 dans le forum ASP
    Réponses: 3
    Dernier message: 15/03/2005, 15h18

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