2011-01-12 16 views
0

私は50000データでそれぞれ2つのテーブルを持っています。私はテーブルを2つマージするにはどうすればよいですか?

INSERT IGNORE 
    INTO table_1 
SELECT * 
    FROM table_2 

を使用してtable_2からのtable_1に挿入しようとするので、それは完全に既存のものを書き換え50000 - 両方のテーブルのidが1から始まります。私はそれを書き直したいのではなく、新しいものを追加したいので、100kを合計します。インデックスの列に5から10の重複があると言うこともありますので、インデックスも重複してチェックしてください。これどうやってするの??

答えて

0

使用PHPまたは他の好きな言語、これはコードの約10〜20行になります...

+0

これは彼の質問に答えるものではありませんので、コメント欄に記入してください。また、あなたは彼の設定が分からないので、私は彼には関係がありません。 Pythonアプリケーションなどになる可能性があります。 –

+0

それが私が "または別のお気に入りの言語" – Tobias

0

のtable_1とtable_2が

を発生することが成功したマージのために最初にすべての異なる鍵を持っている必要がある場合table_1キーは1から50000から開始する必要がありますし、table_2キーの値を使用すると、MySQLで更新機能で使用して対処することができ、複製のために50001から100000

から開始する必要があります

INSERT INTO table_1 
    SELECT * FROM table_2 
ON DUPLICATE KEY UPDATE table_1.val=table_1.val 
0

主キー列がある場合は、重複がある場合は挿入から除外する必要があります。

重複した値を削除するselectを挿入する方法があります。

INSERT IGNORE INTO table_1 (f1, f2, f3) 
SELECT f1, f2, f2 FROM table_2 WHERE table_2.index NOT IN (SELECT index FROM table_1) 

OBS、これは遅いデータベース・サーバ上の非常に効率的ではないとテーブルの詳細情報をよりよく書くことができます。

関連する問題