我正在寻找一种从以前的备份中恢复我的数据库的方法。但是,备份不应简单地覆盖所有现有记录,而应仅添加当前数据库与备份文件之间的差异。如果备份中没有存储“不存在”的记录,则不会发生任何事情。备份是使用 mysqldump 进行的。有什么线索吗?提前致谢
问问题
6754 次
2 回答
18
这是一个不太手动的答案:
mysqldump -t --insert-ignore --skip-opt -u USER -pPASSWORD -h 127.0.0.1 database > database.sql
带有选项的导出命令将为您提供一个没有或命令-t --insert-ignore --skip-opt
的 sql 转储文件,现在每个都是.DROP TABLE
CREATE TABLE
INSERT
INSERT IGNORE
奖金:
这将以相同的方式转储单个表:
mysqldump -t --insert-ignore --skip-opt -u USER -pPASSWORD -h 127.0.0.1 database table_name > table_name.sql
我今天需要这个,忍不住分享它!
于 2014-12-01T19:46:28.230 回答
7
从转储文件中删除DROP TABLE
andCREATE TABLE
语句。INSERT
将语句更改为INSERT IGNORE
. 然后加载备份文件,它不应该更新任何重复的行。
于 2013-06-07T00:05:54.723 回答