# フラッシュバック操作

__*FLASHBACK TABLE*__

+ `FLASHBACK TABLE` ステートメントにより、ゴミ集積周期ウィンドウ内で破棄されたテーブルとデータが復元されます

```
tidb> SELECT COUNT(*), NOW() FROM test.r1;
+----------+---------------------+
| COUNT(*) | NOW()               |
+----------+---------------------+
|        2 | ~!@2022-01-07 14:24:25@!~ |
+----------+---------------------+

tidb> ~!@DROP TABLE@!~ test.r1;

tidb> SELECT * FROM mysql.tidb WHERE variable_name = '~!@tikv_gc_safe_point@!~';
+--------------------+-------------------------+--------------------------------------------------------------+
| VARIABLE_NAME      | VARIABLE_VALUE          | COMMENT                                                      |
+--------------------+-------------------------+--------------------------------------------------------------+
| tikv_gc_safe_point | ~!@20220107-14:11:37 +0000@!~ | All versions after safe point can be accessed. (DO NOT EDIT) |
+--------------------+-------------------------+--------------------------------------------------------------+

tidb> ~!@FLASHBACK TABLE@!~ test.r1 TO r2;

tidb> SELECT COUNT(*) FROM test.r2;
+----------+
| COUNT(*) |
+----------+
|        2 |
+----------+
```
----------------------------------------------------------------------------------------------------------------------------

ステートメント 1: 14時24分ごろにテーブル `test.r1` を削除しました。

ステートメント 2: GCのセーフポイントが14:11前後であることを確認し、過去13分間に存在したデータはMVCCによって保持されているため、`FLASHBACK TABLE`ステートメントによって元に戻すことができます。

ステートメント 3: `FLASHBACK TABLE`操作を実行します。

ステートメント 4: テーブル `test.r1` に以前あったデータを、テーブル `test.r2` に復元します。
