FLASHBACK
描述
该语句用于从回收站中恢复被删除的数据库对象,包括数据库、表等。
默认情况下,回收站处于开启状态,该行为由系统变量 recyclebin 控制。您可以通过 SHOW VARIABLES LIKE 'recyclebin' 查看回收站是否开启。有关系统变量 recyclebin 的详细信息,参见 recyclebin。
SHOW VARIABLES LIKE 'recyclebin';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| recyclebin | ON |
+---------------+-------+
1 row in set (0.001 sec)
如果回收站处于关闭状态,可以通过 SET recyclebin = on 语句开启回收站。回收站中的数据库对象没有被实际删除,仍然会占用资源,如果需要彻底删除,可以执行 PUREGE recyclebin 语句清理回收站。
在删除表后,会同时也会删除从属该表的索引,在通过 FLASHBACK 语句恢复表时,表上的索引也会恢复。特别地,从表中直接删除的索引不会进入回收站,seekdb 也不支持从回收站中直接回收索引。
语法
FLASHBACK {DATABASE | TABLE} object_name TO BEFORE DROP [RENAME TO flashback_object_name];
flashback_object_name:
| database_name
| database_name.table_name
参数解释
| 参数 | 解释 |
|---|---|
| object_name | 指定要恢复的数据库对象在回收站中的名称,不支持直接指定名称。 恢复数据库对象时,也会将从属于数据库的表、索引等数据库对象一并恢复。 您可以通过 SHOW RECYCLEBIN 语句查看要恢复的数据库在回收站中的名称。 |
| RENAME to | 恢复时将数据库对象重命名。 |
| database_name | 数据库恢复后的名称 |
| database_name.table_name | 表恢复后的名称,其中 database_name 用于指定表恢复后的从属的数据库。 |