2012-04-20 4 views
4

私はMySQLデータベースを使用しています。MySQLの場合、1つのテーブルからすべての行をダンプし、関連するすべてのテーブルからすべての関連する(外部キーによって)行をダンプするツールはありますか?

あるテーブルから行セットをダンプしたい場合、これらの行に他のテーブルの行を指し示すforiegnキーがある場合は、それらもダンプします。

次に、これらのダンプを別のデータベースのそれぞれのテーブルにロードしたいとします(LOAD DATA INFILEコマンドなど)。したがって、単にselect...join...into outfileを使用するだけでは、結果が1つの大きな結合テーブルになるため、十分ではありません。

たとえば、テーブルAには、テーブルBとCのそれぞれの行を指すB_idカラムとC_idカラムがあります。したがって、テーブルAから3行をダンプすると、Bの3行とCの3行もダンプされます。

このようなツール/スクリプトは存在しますか?

これを行うスクリプトを書くことは非常に実践的ですが、そのようなツールが既に存在する場合は、私は再構築したくありません。

答えて

0

私の提案:

  1. は、例えば、輸出のために一時テーブルを作成します。 A_export、B_export、C_exportなどがあります。
  2. これらの新しいテーブルに、エクスポートする行を設定します。サポートするテーブルB、C、...、A_exportからの結合クエリを使用して、それを簡単にします。
  3. DB
  4. は「_export」サフィックス
の除去、ターゲットDB内のテーブルの名前を変更し、ターゲットにインポートしたダンプ・ファイル
  • mysqldumpをして、これらのテーブルをダンプ