0

あるMySQLDbから別のMySQLDBにデータをインポートする方法を教えてください。両方のデータベースのデータスキーマは完全に異なり、2番目のデータベースは最初のデータベースの正規化されたバージョンです。

前もって感謝します

4

3 に答える 3

2

ETLソフトウェアを使用するのがより良い方法だと思います。

ウィキペディアによると:

抽出、変換、および読み込み(ETL)は、データベースの使用におけるプロセスであり、以下が含まれます。

  • 外部ソースからのデータの抽出
  • 運用上のニーズに合わせて変換する(品質レベルを含めることができます)
  • エンドターゲット(データベースまたはデータウェアハウス)にロードする
于 2011-04-27T13:06:28.753 に答える
2

抽出、変換、読み込み(ETL)スクリプトについて話しています。

非正規化されたデータから正規化されたデータに移行するのは地獄です。私はあなたが逆をしていることを願っています-非正規化に正規化-これは次のようになります:

次のようなシェルスクリプトを記述します。

  1. 最初のデータベースをダンプします。mysqldump olddb >dump.sql
  2. クリーンな新しいデータベースにロードします。mysql newdb <dump.sql
  3. 一連のCREATE TABLE AS SELECT ...コマンドを記述し、それらをmysqlで実行して、非正規化データを作成します。
  4. 気にしないテーブルはすべて削除してください。

非正規化されたデータを正規化に変換することはめちゃくちゃ難しく、使用しているデータセットに固有のアプローチが必要です。

于 2011-04-27T13:35:49.803 に答える
1

スティーブンの言うことに同意しますが、同様のテクニックでそれを達成することができます。ただし、より複雑なクエリを作成する必要があります。あなたは次のようなことをすることができます:

INSERT INTO table1(field1, field2,...) SELECT field4,field1,... FROM table1;

明らかに、正しい順序で実行する必要があります。IMOは、結合などを使用して複雑なクエリを作成できるようにするための優れたアプローチです。

于 2011-04-27T14:35:12.117 に答える