在执行插入、更新、删除等操作时,容易产生误操作,导致数据库中的内容被修改,通过普通的sql操作无法还原,则可采用Oralce数据库表的闪回机制,将表数据还原到某个时间点,具体如下:
- 先查询某个时间点的数据是否为要还原的数据
select * from TableName
as of timestamp to_timestamp('2019-05-21 23:00:00', 'yyyy-mm-dd hh24:mi:ss'); - 开启这张表的闪回状态
alter table TableName enable row movement; - 把表的状态闪回到这个时间段
flashback table TableName MS to timestamp TO_TIMESTAMP('2019-05-21 23:00:00', 'yyyy-mm-dd hh24:mi:ss'); - 关闭这张表的闪回状态(切勿忘记执行该步骤)
alter table ITEMS disable row movement;
这时重新查询表数据,会发现表中数据已经被还原到2019-05-21 23:00:00时的状态了