第一步:删除数据 DELETE FROM "EMPLOYEER" WHERE id = '123'
第二步:查看数据列表(判断第一步中数据是否被删除) SELECT * FROM "EMPLOYEER" AS OF timestamp to_timestamp( '2024-05-22 11:51:00', 'yyyy-mm-dd hh24:mi:ss' )
第三步:回滚(还原)已删除数据 flashback TABLE "EMPLOYEER" TO timestamp to_timestamp('2024-05-22 11:48:00','yyyy-mm-dd hh24:mi:ss')
第四步:当执行第三步出现报错ORA-08189: cannot flashback the table because row movement is not enabled(未启用行移动功能,不能闪回表),执行此步骤。执行完此步骤,再执行第三步 ALTER TABLE "EMPLOYEER" enable ROW movement
具体含义
- AS OF 是Oracle闪回查询的关键字,表示要查询表在某个时间点的数据
- timestamp 指定时间点的类型是时间戳
完整语句含义 这条SQL语句的意思是:查询EMPLOYEER表在2024-05-22 11:48:00时刻的数据状态。