我最近更新了我的数据库,导致它删除了所有数据。不幸的是,我在我的新数据库中导入了一个2周的sql备份而不是最新的...
如何在不破坏新数据的情况下导入丢失的数据(自服务器更新以来已过去2天)?新数据已经使用了ID,所以现在我的最新SQL备份INSERT INTO table1 (ID, ID_Table2) VALUES (123, 456)
不再是真的,因为对Table2
的引用需要新的ID!
答案 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
子句),然后插入这些行。