Insérer des données d’un fichier bien formaté ou brut en MySQL

MySQL sur le bout des doigts

Dans la lignée de mon article portant sur la génération d’un fichier CSV, nous voulons maintenant importer des fichiers…

Qu’il soit bien formaté :

Ici un fichier texte qui pourrait ressembler à un fichier csv, séparé par des virgules, encapsulé dans des guillements et terminé par un retour chariot :

  LOAD DATA INFILE 'transactions.txt' INTO TABLE transactions
  FIELDS TERMINATED BY ',' ENCLOSED BY '"'
  LINES TERMINATED BY '\n';

Ou qu’il soit brut :

Et là un fichier sans séparateur avec des champs de tailles connues, terminé seulement par un retour chariot

  LOAD DATA LOCAL INFILE '' INTO TABLE transactions 
  (@var1)
  SET
  `transaction_numero`=SUBSTR(@var1,0,10),
  `methode_paiement`=SUBSTR(@var1,10,1),
  `prix`=SUBSTR(@var1,11,4),
  `date_achat`=SUBSTR(@var1,15,19),

Ingénieux vous allez me dire ? Ah oui !

Merci à Guilhem pour ce tips, ça lui a changé la vie :)


Réagissez sur cet article