Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Mengeksport Pukal Semua Jadual MySQL ke Fail CSV Menggunakan `mysql` dan `sed`?

Bagaimanakah Saya Boleh Mengeksport Pukal Semua Jadual MySQL ke Fail CSV Menggunakan `mysql` dan `sed`?

DDD
DDDasal
2024-11-30 03:35:15330semak imbas

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

Eksport CSV Pukal dengan 'mysqldump'

Dalam bidang pengurusan data MySQL, mengeksport kandungan jadual ke format CSV boleh menjadi tugas penting . Walaupun 'mysqldump' ialah utiliti yang berkuasa untuk sandaran pangkalan data, ia tidak mempunyai pilihan untuk mengeksport secara eksklusif setiap jadual sebagai CSV. Artikel ini meneroka pendekatan alternatif untuk mencapai ini menggunakan gabungan 'mysql' dan pasca pemprosesan.

'mysql' dengan Parameter '-B'

Intinya penyelesaian kami terletak pada memanfaatkan parameter '-B' dalam utiliti 'mysql'. Parameter ini mengarahkan atur cara untuk memaparkan keputusan dalam format yang dibataskan tab. Dengan menyalurkan output melalui 'sed', kami boleh memanipulasi data selanjutnya untuk mencipta fail CSV dengan pengepala.

Lelaran Skrip Bash

Untuk mengeksport semua jadual dalam pangkalan data, kita boleh menggunakan skrip Bash untuk menggelungkan senarai nama jadual. Satu pendekatan ialah menggabungkan arahan berikut:

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

Skrip ini mula-mula mendapatkan semula senarai jadual menggunakan 'SHOW TABLES' dan menyimpannya dalam pembolehubah 'tb'. Ia kemudian mengulangi setiap nama jadual dan melaksanakan pertanyaan 'SELECT *' dengan parameter '-B'. Output yang terhasil diproses oleh 'sed' dan disimpan dalam fail CSV yang dinamakan sempena jadual.

Kesimpulan

Dengan menggabungkan parameter '-B' 'mysql ' dan 'sed' pasca pemprosesan, kami boleh mengeksport semua jadual dalam pangkalan data MySQL ke format CSV dengan berkesan. Pendekatan ini memintas batasan 'mysqldump' dan memberikan fleksibiliti yang lebih besar dalam memanipulasi data output.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengeksport Pukal Semua Jadual MySQL ke Fail CSV Menggunakan `mysql` dan `sed`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn