2017-07-10 4 views
2

Je veux exporter des données de mysql dans un csv. Il y a beaucoup de tables donc je veux un fichier csv avec beaucoup de feuilles. Comment cela peut-il être fait?Mysql Comment extraire au format csv, avec des options de feuilles?

Je suppose somethings comme:

SELECT * 
FROM product 
WHERE active = 1 
INTO OUTFILE '/root/tmp/data.csv' 
FIELDS TERMINATED BY ',' 
ENCLOSED BY '"' 
LINES TERMINATED BY '\n'; 

SELECT * 
FROM member 
WHERE active = 1 
INTO OUTFILE '/root/tmp/data.csv' // using the same .csv 
FIELDS TERMINATED BY ',' 
ENCLOSED BY '"' 
LINES TERMINATED BY '\n'; 

etc... 

Répondre

1

Vous ne pouvez pas ajouter à un fichier existant en utilisant INTO OUTFILE.

https://dev.mysql.com/doc/refman/5.7/en/select-into.html dit:

nom_fichier ne peut pas être un fichier existant, ce qui empêche entre autres fichiers tels que /etc/passwd et des tables de base de données d'être détruits.

Vous devrez donc exporter vers un fichier différent par table, puis les concaténer ensemble (c'est-à-dire sans utiliser SQL).