oracle中经常碰到误删除数据的情况,之前都是通过as of timestamp 进行查询,然后进行update等反操作,今天发现可以直接flashbak table to 误操作之前的一个时间点,但是需要开始行迁移即:
alter table[schema.]table_name enable row movement;
语法:flashback table [schema.]table_name[,…n] to {[scn] | [timestamp] [[enable | disable] triggers]}
https://docs.oracle.com/cd/B28359_01/server.111/b28286/statements_9012.htm
当然这样的话就直接还原到误删除 的时间点了,有时候不确定是什么时候的误删除,可以通过as of timestamp 查询一下数据是否符合要求,如果符合要求就可以使用
SQL> FLASHBACK TABLE scott.dept TO TIMESTAMP (SYSTIMESTAMP – INTERVAL ’11’ minute);
Flashback complete.
既可。