1

同じマシンに復元されたバックアップ データベースから、実稼働の mysql データベースに欠落している行をマージする必要があります。

自動インクリメントである元の主キーIDを保持しながら、これを行うにはどうすればよいですか。

4

2 に答える 2

2

あなたが試すことができます:

INSERT IGNORE INTO table_1 SELECT * FROM table_2;

これにより、table_1 内の行が、一致する主キーを持つ table_2 内の行に取って代わり、新しい主キーを持つ行が引き続き挿入されます。

あるいは、

REPLACE INTO table_1 SELECT * FROM table_2;

新しい主キーを持つ行を挿入しながら、すでに table_1 にある行を table_2 の対応する行で更新します。

于 2012-06-26T19:45:31.997 に答える
1
--create a backup just in case
CREATE TABLE table_prod_sav SELECT * FROM table_prod;

--insert the missing rows
INSERT INTO table_prod (id, field) 
    SELECT b.id, b.field 
    FROM table_backup b LEFT JOIN table_prod p ON b.id = p.id
    WHERE p.id IS NULL;

--Check consistency...

--DROP TABLE table_prod_sav;
于 2012-06-26T19:45:58.477 に答える