«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как я могу массово экспортировать все таблицы MySQL в файлы CSV, используя mysql и sed?

Как я могу массово экспортировать все таблицы MySQL в файлы CSV, используя mysql и sed?

Опубликовано 22 декабря 2024 г.
Просматривать:354

How Can I Bulk Export All MySQL Tables to CSV Files Using `mysql` and `sed`?

Массовый экспорт в 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