Массовый экспорт в CSV с помощью 'mysqldump'
В сфере управления данными MySQL экспорт содержимого таблицы в формат CSV может оказаться важной задачей. . Хотя mysqldump — мощная утилита для резервного копирования баз данных, в ней отсутствует возможность эксклюзивного экспорта каждой таблицы в формате CSV. В этой статье рассматривается альтернативный подход для достижения этой цели с использованием комбинации mysql и постобработки.
'mysql' с параметром '-B'
Суть Наше решение заключается в использовании параметра «-B» в утилите «mysql». Этот параметр указывает программе отображать результаты в формате, разделенном табуляцией. Передавая выходные данные через 'sed', мы можем дополнительно манипулировать данными для создания файла CSV с заголовками.
Итерация сценария Bash
Чтобы экспортировать все таблицы в базы данных, мы можем использовать сценарий Bash для циклического просмотра списка имен таблиц. Один из подходов — объединить следующие команды:
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
Этот скрипт сначала получает список таблиц, используя SHOW TABLES, и сохраняет его в переменной «tb». Затем он перебирает каждое имя таблицы и выполняет запрос «SELECT *» с параметром «-B». Полученный результат обрабатывается с помощью 'sed' и сохраняется в файле CSV, названном в честь таблицы.
Заключение
Объединив параметр '-B' в 'mysql ' и постобработку 'sed', мы можем эффективно экспортировать все таблицы в базе данных MySQL в формат CSV. Этот подход обходит ограничения mysqldump и обеспечивает большую гибкость в манипулировании выходными данными.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3