ホームページ > データベース > mysql チュートリアル > 「mysql」と「sed」を使用してすべての MySQL テーブルを CSV ファイルに一括エクスポートするにはどうすればよいですか?

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

DDD
リリース: 2024-11-30 03:35:15
オリジナル
380 人が閲覧しました

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

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

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

'mysql' と '-B' パラメータ

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

Bash スクリプトの反復

すべてのテーブルを 1 つのファイルにエクスポートするにはデータベースでは、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」の制限が回避され、出力データの操作における柔軟性が向上します。

以上が「mysql」と「sed」を使用してすべての MySQL テーブルを CSV ファイルに一括エクスポートするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート