Exportation CSV en masse avec 'mysqldump'
Dans le domaine de la gestion des données MySQL, l'exportation du contenu d'une table au format CSV peut être une tâche cruciale . Bien que « mysqldump » soit un utilitaire puissant pour les sauvegardes de bases de données, il lui manque une option permettant d'exporter exclusivement chaque table au format CSV. Cet article explore une approche alternative pour y parvenir en utilisant une combinaison de 'mysql' et de post-traitement.
'mysql' avec le paramètre '-B'
Le point crucial L'une des solutions de notre solution consiste à exploiter le paramètre '-B' dans l'utilitaire 'mysql'. Ce paramètre demande au programme d'afficher les résultats dans un format délimité par des tabulations. En acheminant la sortie via 'sed', nous pouvons manipuler davantage les données pour créer un fichier CSV avec des en-têtes.
Itération de script Bash
Pour exporter toutes les tables dans un base de données, nous pouvons utiliser un script Bash pour parcourir la liste des noms de tables. Une approche consiste à combiner les commandes suivantes :
mysql -u username -ppassword dbname -sN -e "SHOW TABLES;" | \ for tb in $(mysql -u username -ppassword dbname -sN -e "SHOW TABLES;"); do mysql -B -u username -p password database -h dbhost -e "SELECT * FROM $tb;" \ | sed “s/”/\””/g;s/'/\'/;s/\t/\”,\”/g;s/^/\”/;s/$/\”/;s/\n//g” > "$tb.csv" done
Ce script récupère d'abord la liste des tables à l'aide de 'SHOW TABLES' et la stocke dans la variable 'tb'. Il parcourt ensuite chaque nom de table et exécute une requête « SELECT * » avec le paramètre « -B ». La sortie résultante est traitée par 'sed' et stockée dans un fichier CSV nommé d'après la table.
Conclusion
En combinant le paramètre '-B' de 'mysql ' et le post-traitement 'sed', nous pouvons efficacement exporter toutes les tables d'une base de données MySQL au format CSV. Cette approche contourne les limitations de « mysqldump » et offre une plus grande flexibilité dans la manipulation des données de sortie.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3