「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