同じマシンに復元されたバックアップ データベースから、実稼働の mysql データベースに欠落している行をマージする必要があります。
自動インクリメントである元の主キーIDを保持しながら、これを行うにはどうすればよいですか。
あなたが試すことができます:
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 の対応する行で更新します。
--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;