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>