将数据从旧数据库插入新数据库而不删除新数据

时间:2017-11-22 12:11:43

标签: mysql

我最近更新了我的数据库,导致它删除了所有数据。不幸的是,我在我的新数据库中导入了一个2周的sql备份而不是最新的...

如何在不破坏新数据的情况下导入丢失的数据(自服务器更新以来已过去2天)?新数据已经使用了ID,所以现在我的最新SQL备份INSERT INTO table1 (ID, ID_Table2) VALUES (123, 456)不再是真的,因为对Table2的引用需要新的ID!

1 个答案:

答案 0 :(得分:2)

好吧,您可以选择尚未出现的所有行。可能有更优雅的解决方案,但这应该可以解决问题;

INSERT INTO `new_database`.`new_table` (`column_1`, `column_2`, ...)
SELECT `column_1`, `column_2`, ... FROM `old_database`.`old_table` AS `ot`
    WHERE `ot`.`id` NOT IN (SELECT `id` FROM `new_database`.`new_table`)

基本上你在这里做的是从旧表中选择新数据库中不存在的所有行(NOT IN子句),然后插入这些行。