同じテーブルを持つ 2 つの *.db ファイルを 1 つの *.db ファイルにマージする

同じテーブルを持つ 2 つの *.db ファイルを 1 つの *.db ファイルにマージする

2 つの MySQL データベース ファイル (*.db) を 1 つのデータベースに結合したいと考えています。両方のデータベースに同じテーブルがあります。これを行う簡単な方法はありますか?

答え1

2 つのデータベースが db1 と db2 であると仮定すると、次の操作を実行できます。

1) ロールバック オプション用に db1 と db2 のバックアップを取得します。

mysqldump -u<root> -p<pass> --databases db1 db2 > db1_db2.sql

2) db1 のバックアップを取得します (データのみ)。

mysqldump -u<root> -p<pass> --no-create-info db1 > db1.sql

3) db1 のダンプを db2 にロードします。

cat db1.sql | mysql db2 

したがって、両方のデータベースに同じテーブルがある場合は、テーブルにデータが挿入されます。テーブルが存在しない場合は、エラーが発生します。これらのエラーをスキップして、次のように続行できます。

cat db1.sql | mysql -u<user> -p<pass> db2 --force

関連情報