2011-07-07 9 views
1

2つのテーブルがあり、その構造は同じですが、2つの異なるアプリケーションで使用されています。したがって、それぞれに固有のレコードがあります(app1のレコードはapp2に存在しません)。しかし、彼らのIDは2つのアプリで別々に管理されています。したがって、app1のIDはapp2に存在する可能性がありますが、情報は異なります。重複するIDを持つ2つのテーブルをマージする

2つのアプリケーションが1つのテーブルにマージされるため、2つのアプリケーションを1つのテーブルにマージする必要があります。問題はIDにあります。私はおそらくIDをリセットし、各レコードの一意のIDを再生成します。 IDは他のテーブルから参照されないため、リセットすることは問題にはなりません。しかし、私は実際にこれをどのように実行するかは分かりません。

答えて

6

自動増分(id)列を持つ表を作成します。

次に、各テーブルからデータをインポートするためにINSERT ... SELECTクエリを作成

例:

INSERT INTO new_table(column1,column2,.....) -- ommiting the id column 
SELECT column1,column2,... -- ommiting the id column 
FROM old_table1 

INSERT INTO new_table(column1,column2,.....) -- ommiting the id column 
SELECT column1,column2,...-- ommiting the id column 
FROM old_table2 
+1

それも、 'CREATEで動作するかもしれませんTABLE new_table AS SELECT * FROM old_tabe1'、次に2番目の 'INSERT'ステートメントです。 'old_table1' /' old_table2'の現在の構造に依存します。 –

+0

これはします:)ありがとう – Sufendy

+0

@MizardXあなたは正しいです。彼はまた、1つのテーブルを保持し、他のからのデータをインポートすることができます:) – niktrs

0

ので、APP1からIDSはAPP2 ではなく、異なる情報で存在することがあります。

いずれのアプリケーションでも受け入れ可能な形式で両方のテーブルのデータを統合するために、調べたい1つのオプションはusing a viewです。

1

ここでINSERT INTO .. SELECT FROMが使用されます - idの列なし。 Asloは、私が新しいテーブルにAPPLICATION_ID列を置く - ちょうど私は、データがどこから来たか知っていることを確認する:

INSERT INTO your_table(app_id, col1,co2,.....) 
SELECT 1, col1,col2,... 
FROM old_table1 

アプリケーション2の場合:

INSERT INTO your_table(app_id, col1,co2,.....) 
SELECT 2, col1,col2,... 
FROM old_table2 
関連する問題