我正在寻找一种方法来从以前的备份中恢复我的数据库。但是,备份不应简单地覆盖所有现有记录,而应仅添加当前数据库与备份文件之间的差异。如果备份中没有存储“不存在”的记录,则不会发生任何事情。备份是用 mysqldump 做的。有什么线索吗? 提前致谢
最佳答案
这是一个不太手动的答案:
mysqldump -t --insert-ignore --skip-opt -u USER -pPASSWORD -h 127.0.0.1 database > database.sql
带有 -t --insert-ignore --skip-opt
选项的导出命令将为您提供一个没有 DROP TABLE
或 的 sql 转储文件CREATE TABLE
命令和每个 INSERT
现在都是 INSERT IGNORE
。
奖励:
这将以相同的方式转储单个表:
mysqldump -t --insert-ignore --skip-opt -u USER -pPASSWORD -h 127.0.0.1 数据库 table_name > table_name.sql
我今天需要这个,忍不住要分享!
关于mysql只导入缺失的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16974120/