如何合并两个表(包括主键和范围限制)

how to merge two tables (incl. Primary Key and Range Limit)

我昨天做了一个 mystake 并删除了 mysql table 中的一些行(幸运的是我设置了 LIMIT 2000)。

现在我想使用备份再次插入已删除的行。我得到了:

tb_production:

id (primary key)   col1     col2
--------------------------------
   1               data     data
   2               data     data
   6               data     data
   9               data     data

如您所见,缺少行。 现在我想将备份 table 中丢失的行插入(以上)生产 table:

tb_backup:

   id (primary key)   col1     col2
    --------------------------------
       1               data     data
       2               data     data
       3               data     data
       4               data     data
       5               data     data
       6               data     data
       7               data     data
       8               data     data
       9               data     data

我在Whosebug(How can I merge two MySQL tables?)上找到了一个很好的答案,给定的答案:

INSERT IGNORE INTO table_1 SELECT * FROM table_2;

不想再犯错,所以请教:

如何将备份table中的行合并到生产table、而不覆盖生产table中的现有行和再次 LIMIT 2000

请尝试以下查询

INSERT INTO tb_production(id,col1,col2)
    SELECT bkp.id,bkp.col1,bkp.col2 FROM tb_backup bkp LEFT JOIN tb_production prd
    ON bkp.id=prd.id WHERE prd.id IS NULL ORDER BY bkp.id LIMIT 2000;