FLASHBACK TABLE 
====================================



描述 
-----------

用于从回收站中恢复被删除的TABLE。

前置条件 
-------------

回收站需要处于开启状态，可以通过

`show variables like 'recyclebin';`

来查看回收站是否开启。

```javascript
OceanBase(admin@test)> show variables like 'recyclebin';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| recyclebin    | ON    |
+---------------+-------+
1 row in set (0.00 sec)
```



如果回收站处于关闭状态，可以通过

`set recyclebin = on;`

来开启。回收站中的表没有被实际删除，仍然会占用资源，如果需要彻底删除，可以执行

`purge recyclebin;`

格式 
-----------

```javascript
 FLASHBACK TABLE object_name TO BEFORE DROP [RENAME to db_name.table_name];
```



参数解释 
-------------



|   **参数**    |                                 **解释**                                  |
|-------------|-------------------------------------------------------------------------|
| object_name | 指定要恢复的object名称或表名，只有在表所在的database中才能执行。恢复TABLE时，也会将和TABLE相关的INDEX也恢复出来。 |
| RENAME to   | 修改表名和表所属的库。                                                             |



示例 
-----------

* 从回收站中恢复被删除的表t。




```javascript
OceanBase(admin@test)> create table t(id int primary key, k int);
Query OK, 0 rows affected (0.04 sec)

OceanBase(admin@test)> insert into t values(1,1);
Query OK, 1 row affected (0.00 sec)

OceanBase(admin@test)> select * from t;
+----+------+
| id | k    |
+----+------+
|  1 |    1 |
+----+------+
1 row in set (0.00 sec)

OceanBase(admin@test)> drop table t;
Query OK, 0 rows affected (0.01 sec)

OceanBase(admin@test)> select * from t;
ERROR 1146 (42S02): Table 'test.t' does not exist
OceanBase(admin@test)> show recyclebin;
+--------------------------------+---------------+-------+----------------------------+
| OBJECT_NAME                    | ORIGINAL_NAME | TYPE  | CREATETIME                 |
+--------------------------------+---------------+-------+----------------------------+
| __recycle_$_1_1597028971700936 | t             | TABLE | 2020-08-10 11:09:31.701033 |
+--------------------------------+---------------+-------+----------------------------+
1 row in set (0.00 sec)

OceanBase(admin@test)> flashback table t to before drop;
Query OK, 0 rows affected (0.01 sec)

OceanBase(admin@test)> select * from t;
+----+------+
| id | k    |
+----+------+
|  1 |    1 |
+----+------+
1 row in set (0.00 sec)
```



