0

是否可以从完整备份或并行数据库中恢复,只有某些具有原始 ID 的记录?

假设记录是从特定日期删除的,是否可以在不恢复整个表的情况下恢复这些记录?

所以要清楚地说,我在备份或并行数据库中仍有 500 - 720 条记录,但该表在备份后添加了新记录,所以也不想丢失它们。因此,只想将记录 500 - 720 及其原始 ID 重新插入当前表。

4

1 回答 1

1

如果您有数据库的副本,那将是最简单和最快捷的方法 - 使用您需要的行创建表的副本:

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 子句在插入。

于 2013-02-21T15:54:53.737 回答