Verser toutes les tables MySQL au format CSV avec Mysqldump
Face à la tâche d'extraire toutes les tables de la base de données au format CSV, mysqldump propose un solution pratique. Cependant, la fonctionnalité par défaut vous permet uniquement de vider des tables individuelles à la fois.
Pour vider toutes les tables, une approche globale est nécessaire. Voici comment procéder :
Convertir les données d'une table individuelle au format CSV :
mysql -B -u username -p password database -h dbhost -e "SELECT * FROM tablename;" \ | sed "s/\"/\"\"/g;s/'/\'/;s/\t/\",\"/g;s/^/\"/;s/$/\"/;s/\n//g"
Cette commande extrait les données d'une table spécifique nommée 'tablename' en utilisant MySQL et le formate en CSV.
Générer une liste de toutes les tables :
mysql -u username -ppassword dbname -sN -e "SHOW TABLES;"
Cette commande récupère une liste de toutes les tables de la base de données et la stocke dans une variable.
Itérer sur les tables et exporter au format CSV Données :
À l'aide d'une boucle, parcourez la liste des tables et ajoutez la commande « Convertir les données de table au format CSV » mentionnée précédemment.
for tb in $(mysql -u username -ppassword dbname -sN -e "SHOW TABLES;"); do echo .....; done
Remplacer '... ..' avec la commande 'Convertir les données de la table au format CSV', en veillant à remplacer 'nom de la table' par '$tb'.
Rediriger la sortie vers un fichier CSV :
Ajouter ' > outfile.csv' à la fin de la commande de boucle pour diriger la sortie dans un fichier CSV.
En exécutant cette solution complète, vous pouvez efficacement vider toutes les tables MySQL au format CSV, en fournissant une option d'exportation pratique pour vos besoins d'analyse et de traitement de données.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!