Home » Système d'exploitation » Import de fichier csv vers MySQL

Import de fichier csv vers MySQL

csv2mysqll’importation de fichier volumineux, CSV ou SQL, vers MySQL pose problème car ces fichiers dépassent les limitations de phpmyadmin.

L’intégration basique via phpmyadmin est donc impossible, sauf si on change les limitations. Mais ce serait faire une erreur de faire cela, car on pourrai perdre beaucoup de temps.

La meilleure solution est d’intégrer ces fichiers CSV via la ligne de commande.
Pour faire cela, il faut suivre la LOAD DATA INFILE Syntax. Cette syntaxe permet de lire très rapidement les lignes d’un tableau.
Pour en savoir sur cette syntaxe, vous pouvez lire la page load-data sur le site de mysql.com.

Je vais vous donner un exemple d’utilisation de cette technique.
Que vous soyez sous Linux, MAC, ou Windows, il faut tout d’abord se connecter à MySQL. Vous pouvez trouver la méthode sous Windows sur le site numelion.com.
Sous Linux il suffit d’utiliser la ligne de commande suivante :

mysql -u root -p

Ensuite, vous choisissez la base de donnée que vous voulez utiliser.

USE new_bdd

Et vous utiliser la LOAD DATA INFILE Syntax

LOAD DATA INFILE 'fichier.csv' INTO TABLE tablesql FIELDS TERMINATED BY ';' ENCLOSED BY '"' LINES TERMINATED BY '\n';

Cette commande signifie que vous intégrez le fichier fichier.csv dans la table tablesql de la base de donnée new_bdd.
Ensuite, les champs du fichier se terminent par un point-virgule et sont délimités par des doubles guillemets. Les lignes se finissent par un saut de ligne.

Après cela, le contenu du fichier CSV se retrouve dans votre BDD en quelques secondes.

PS :
Pour que cette commande marche, il faut que le fichier CSV se retrouve dans un  dossier spécifique (/var/lib/mysql/base/ pour Linux).
Je n’ai pas trouvé de technique pour changer ce dossier, mais je pense qu’il existe un moyen de le faire.

Posté dans Système d'exploitation

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

  • RSS
  • Facebook
  • LinkedIn
  • Twitter
  • YouTube