「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > 「mysql」と「sed」を使用してすべての MySQL テーブルを CSV ファイルに一括エクスポートするにはどうすればよいですか?

「mysql」と「sed」を使用してすべての MySQL テーブルを CSV ファイルに一括エクスポートするにはどうすればよいですか?

2024 年 12 月 22 日に公開
ブラウズ:803

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

「mysqldump」による一括 CSV エクスポート

MySQL データ管理の領域では、テーブルの内容を CSV 形式でエクスポートすることが重要なタスクになる場合があります。 。 「mysqldump」はデータベースのバックアップ用の強力なユーティリティですが、すべてのテーブルを CSV として排他的にエクスポートするオプションがありません。この記事では、「mysql」と後処理を組み合わせてこれを達成する別のアプローチを検討します。

'mysql' with '-B' Parameter

核心私たちのソリューションの最大の特徴は、「mysql」ユーティリティの「-B」パラメータを活用することにあります。このパラメータは、結果をタブ区切り形式で表示するようにプログラムに指示します。 「sed」を介して出力をパイプすることで、データをさらに操作してヘッダー付きの CSV ファイルを作成できます。

Bash Script Iteration

すべてのテーブルをデータベースでは、Bash スクリプトを利用してテーブル名のリストをループできます。 1 つの方法は、次のコマンドを組み合わせることです:

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」に保存します。次に、各テーブル名を反復処理し、「-B」パラメータを指定して「SELECT *」クエリを実行します。結果の出力は「sed」によって処理され、テーブルにちなんで名付けられた CSV ファイルに保存されます。

結論

「mysql」の「-B」パラメータを組み合わせることで、 ' および 'sed' 後処理を使用すると、MySQL データベース内のすべてのテーブルを CSV 形式に効果的にエクスポートできます。このアプローチは、「mysqldump」の制限を回避し、出力データの操作における柔軟性を高めます。

最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3