是否可以从完整备份或并行数据库中恢复,只有某些具有原始 ID 的记录?
假设记录是从特定日期删除的,是否可以在不恢复整个表的情况下恢复这些记录?
所以要清楚地说,我在备份或并行数据库中仍有 500 - 720 条记录,但该表在备份后添加了新记录,所以也不想丢失它们。因此,只想将记录 500 - 720 及其原始 ID 重新插入当前表。
是否可以从完整备份或并行数据库中恢复,只有某些具有原始 ID 的记录?
假设记录是从特定日期删除的,是否可以在不恢复整个表的情况下恢复这些记录?
所以要清楚地说,我在备份或并行数据库中仍有 500 - 720 条记录,但该表在备份后添加了新记录,所以也不想丢失它们。因此,只想将记录 500 - 720 及其原始 ID 重新插入当前表。
如果您有数据库的副本,那将是最简单和最快捷的方法 - 使用您需要的行创建表的副本:
CREATE TABLE table2
AS
SELECT * FROM table1
WHERE table1.ID BETWEEN 500 AND 720
然后用 mysqldump 转储 table2:
mysqldump -u -p thedatabase table2 > table2_dump.sql
并将转储发送到主数据库,在使用临时数据库时运行转储,并使用以下命令插入丢失的记录:
INSERT INTO table1
SELECT *
FROM temp_db.table2
如果您没有丢失记录的数据库副本,只是备份,那么我认为您无法进行这种选择性恢复。如果您只有整个数据库的单个转储文件,那么您必须将完整副本恢复到临时数据库,并以与我上面描述的方式类似的方式插入丢失的记录,但使用 where 子句在插入。