Skip to main content

Exportation des données en CSV

Pour exporter les données en CSV, il est possible de préciser à la sortie d'une requete SQL, le OUTPUT FILE
Mais il faut préciser dans le fichier my.cnf un répertoire sécurisé:

mysql> select * from myidtables INTO OUTFILE 'myids.csv' ;
ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement

Dans le fichier my.cnf, rajouter le repertoire de sauvegarde des données:

secure_file_priv=/tmp

Une fois signifier, les données peuvent se faire sauvegardé dans le repertoire donné.

mysql> SHOW VARIABLES LIKE "secure_file_priv";
+------------------+-------+
| Variable_name | Value |
+------------------+-------+
| secure_file_priv | /tmp/ |
+------------------+-------+
1 row in set (0,00 sec)

mysql> select * from myidtables INTO OUTFILE '/tmp/myids.csv' ;
Query OK, 1 row affected (0,00 sec)

Il est possible de signifier le caractère de terminaison inter valeur ainsi que le caractère entourant les valeurs

select * from myidtables INTO OUTFILE '/tmp/myids2.csv' FIELDS ENCLOSED BY '"' TERMINATED BY ';' ;

Importation des données


Il est possible de reimporter des données CSV dans une table mysql.
En premier lieu, nous créons une nouvelle table

mysql> create table import( i int);
Query OK, 0 rows affected (0,06 sec)

Puis nous utilisons la requete LOAD DATA INFILE '''nom de fichier''' into table '''table name'''

mysql> LOAD DATA INFILE '/tmp/myids2.csv' into table import FIELDS ENCLOSED BY '"' TERMINATED BY ';' ;
Query OK, 1 row affected (0,12 sec)
Records: 1 Deleted: 0 Skipped: 0 Warnings: 0

 

Exportation de données avec des en-têtes de colonne

 

Il serait pratique que le fichier CSV contienne la première ligne comme en-tête de colonne afin que le fichier soit plus compréhensible.

Pour ajouter les en-têtes de colonne, vous devez utiliser l'instruction UNION comme suit:

mysql> select 'key' union select * from myidtables INTO OUTFILE '/tmp/myids3.csv' FIELDS ENCLOSED BY '"' TERMINATED BY ';' ;

Donne comme fichier

<source lang='bash'>
"key"
"1"
</source>