今天进行项目维护,处理数据库数据表的时候,脑子浑浑噩噩思想溜号了,莫名把重要的菜单表给删除了,WDF!!!,想想把备份的数据库拿来还原,但是我在菜单表新增的数据就没有了,不想白费功夫。冷静的想了想,想到了令我心痛的Oracle数据库闪回技术。为啥心痛是因为小白的时候用过闪回技术把数据库给弄蹦了。
错误的SQL删除语句,写的还煞有其事!!!关键主键还写对了!!
delete from TMENU where MENU_ID>= 7997
正确的sql应该是这样
delete from TZZ_PLACE where PLACE_ID>= 7997
运行闪回语句,先进行闪回时间点的确认,在进行闪回操作。
select * from TMENU as of timestamp to_timestamp('2021-02-23 09:15:00','yyyy-mm-dd hh24:mi:ss');
--启用表闪回首先要在表上支持行移动
alter table TMENU enable row movement;
--闪回操作
flashback table TMENU to timestamp to_timestamp('2021-02-23 09:15:00','yyyy-mm-dd hh24:mi:ss');
查询验证数据表的数据回来了!