FLASHBACK TABLE — 恢复已删除的表
FLASHBACK TABLE name
TO BEFORE DROP
FLASHBACK TABLE
命令可以撤销 DROP TABLE 操作。
它从回收站中恢复表到其先前的状态。只有表所有者、模式所有者和超级用户可以对表执行闪回操作。
您可以指定表的原始用户定义名称,或者指定 LightDB 数据库在表被删除时分配给该对象的系统生成名称。
要查看回收站的内容,请查询 USER_RECYCLEBIN
系统视图。
系统生成的回收站对象名称是唯一的。因此,如果您指定系统生成的名称,数据库将闪回该特定对象及其相关对象。
如果您指定用户定义的名称,并且回收站中包含多个同名对象,数据库将闪回最近移入回收站的对象。
数据库会闪回表上定义的所有索引、触发器和约束,但不包括引用其他表的引用完整性约束。
恢复的索引、触发器和约束具有回收站名称。因此,建议在执行 FLASHBACK TABLE ... TO BEFORE DROP 语句之前先查询 USER_RECYCLEBIN 视图,以便您可以将恢复的触发器和约束重命名为更易用的名称。
当您删除一个表时,与表相关的统计信息、策略、发布、操作符、重写规则 (在 LightDB oracle 模式下排除视图重写规则)也会被删除,但不会放入回收站。 因此,这些对象无法与表一起闪回恢复。
闪回一张删除的表, t1
:
FLASHBACK TABLE t1 TO BEFORE DROP;
闪回 schema my
的表 t2
:
FLASHBACK TABLE my.t2 TO BEFORE DROP;