0

元のIDを持つ特定のレコードのみを完全バックアップまたは並列データベースから復元することは可能ですか?

特定の日付からレコードが削除されたとしましょう。テーブル全体を復元せずに、それらのレコードを復元できますか?

明確にするために、バックアップまたは並列データベースにまだレコード500〜720があるとしますが、バックアップ以降にテーブルに新しいレコードが追加されているので、それらも失いたくないとしましょう。したがって、レコード500〜720を元のIDで現在のテーブルにスロットバックするだけです。

4

1 に答える 1

1

dbのコピーがある場合は、これが最も簡単で迅速な方法になります。必要な行だけを使用してテーブルのコピーを作成します。

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

レコードが欠落しているデータベースのコピーがなく、バックアップだけである場合、そのような選択的な復元を行うことはできないと思います。db全体のダンプファイルが1つしかない場合は、完全なコピーを一時dbに復元し、上記と同様の方法で欠落しているレコードを挿入する必要がありますが、where句を使用します。インサートに。

于 2013-02-21T15:54:53.737 に答える