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 :

Import table champ vide


Sujet :

Requêtes MySQL

  1. #1
    Membre à l'essai
    Inscrit en
    Décembre 2008
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 17
    Points : 16
    Points
    16
    Par défaut Import table champ vide
    Bonsoir,

    Je souhaite importer un fichier .csv qui comporte à la fin une colonne vide.
    Il me dit que tout est ok, mais n'importe aucune ligne.

    Comment faut-il déclarer cette colonne (var3) dans le create table ?

    Le fichier est très lourd, donc je ne peux pas supprimer la colonne via un logiciel classique.

    Voici mon script SQL :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    CREATE DATABASE madatabase CHARACTER SET 'utf8';
    USE madatabase
     
    CREATE TABLE matable (
        numero VARCHAR(10),
        var1 int, 
        var2 VARCHAR(10),
        var3 VARCHAR(1),
        PRIMARY KEY (numero)
     )
    ENGINE=INNODB;
     
     
    LOAD DATA LOCAL INFILE 'D:/repertoire/monfichier.csv'
       INTO TABLE matable
       FIELDS TERMINATED BY ';'
       LINES TERMINATED BY '\r\n'
       IGNORE 1 LINES
    (numero, var1, var2, var3);
    Merci de votre aide

    Greg

  2. #2
    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 346
    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 346
    Points : 18 958
    Points
    18 958
    Par défaut
    Salut jrege75.

    Voici le fichier à charger :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    \N;"10/5/2014 15:33:17";"web";""
    125;"15/5/2014 23:53:59";"alpha\; beta\; gamma";""
    -247;\N;"zéro";""
    La dernière colonne existe mais elle est vide.
    Et voici le résultat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    --------------
    START TRANSACTION
    --------------
     
    --------------
    SHOW VARIABLES LIKE 'secure_file_priv'
    --------------
     
    +------------------+--------------+
    | Variable_name    | Value        |
    +------------------+--------------+
    | secure_file_priv | E:\30.MySql\ |
    +------------------+--------------+
    --------------
    DROP DATABASE IF EXISTS `base`
    --------------
     
    --------------
    CREATE DATABASE IF NOT EXISTS `base`
            DEFAULT CHARACTER SET `latin1`
            DEFAULT COLLATE       `latin1_general_ci`
    --------------
     
    --------------
    DROP TABLE IF EXISTS trav
    --------------
     
    --------------
    CREATE TABLE `trav`
    ( `id`        integer unsigned  not null auto_increment primary key,
      `col_num`   integer               null default null,
      `col_date`  datetime              null default null,
      `col_char`  varchar(255)          null default null,
      `col_vide`  varchar(255)          null default null
    ) ENGINE=InnoDB
      DEFAULT CHARSET=`latin1` COLLATE=`latin1_general_ci`
      ROW_FORMAT=COMPRESSED
    --------------
     
    --------------
    LOAD DATA INFILE 'E:/30.MySql/40.Load/Ex_01/fichier.txt'
         INTO TABLE `trav`
         CHARACTER SET latin1
         FIELDS TERMINATED            BY ';'
                OPTIONALLY ENCLOSED   BY '\"'
                ESCAPED               BY '\\'
         LINES  TERMINATED            BY '\r\n'
         IGNORE 0 LINES
         (@F1, @F2, @F3,@F4)
         set col_num  =             trim(@F1),
             col_date = str_to_date(trim(@F2), '%d/%c/%Y %H:%i:%s'),
             col_char =             trim(@F3),
             col_vide = '...'
    --------------
     
    --------------
    select * from `trav`
    --------------
     
    +----+---------+---------------------+--------------------+----------+
    | id | col_num | col_date            | col_char           | col_vide |
    +----+---------+---------------------+--------------------+----------+
    |  1 |    NULL | 2014-05-10 15:33:17 | web                | ...      |
    |  2 |     125 | 2014-05-15 23:53:59 | alpha; beta; gamma | ...      |
    |  3 |    -247 | NULL                | zéro               | ...      |
    +----+---------+---------------------+--------------------+----------+
    --------------
    COMMIT
    --------------
     
    Appuyez sur une touche pour continuer...
    J'ai volontairement quelque chose dans la colonne, indépendamment de la colonne ne contenant rien.

    Si inversement la colonne n'existe pas, il suffit de ne pas y faire référence (je parle du @F4 que vous devez supprimer).

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

  3. #3
    Membre à l'essai
    Inscrit en
    Décembre 2008
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 17
    Points : 16
    Points
    16
    Par défaut
    Merci Artemus24 !

Discussions similaires

  1. [AC-2007] Importation de champs vides de type date
    Par Reddy_Dev dans le forum Access
    Réponses: 1
    Dernier message: 28/04/2015, 19h07
  2. Problème d'import db - Champs vides !?
    Par flu-1 dans le forum MySQL
    Réponses: 4
    Dernier message: 30/04/2009, 17h31
  3. Importance des champs vides
    Par tedparker dans le forum Access
    Réponses: 2
    Dernier message: 25/07/2006, 18h00
  4. Affectation sur un champ vide d'une table Access
    Par kurkaine dans le forum C++Builder
    Réponses: 2
    Dernier message: 25/11/2005, 10h14
  5. [conception] champs vides ou plusieurs tables ?
    Par in dans le forum Décisions SGBD
    Réponses: 7
    Dernier message: 17/02/2004, 09h41

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