今天很开心误删表了19万数据几秒钟没了,开心得差点唱铁窗外,诶,不过我几分钟把数据找回来了,更开心了,哈哈哈哈哈,止笑,下面总结一下怎么回来的
在操作数据库时,有时候还是会不小心delete数据的或者更新数据时忘记设置更新条件,要是这时候没有提交事务,还可以执行回滚操作。要是这时候不小心提交了,数据也是可以恢复的。
下面这条语句就是按照时间查询过往数据的,这条语句不能直接帮你恢复数据但是可以按时间查询到以前的过往数据,相当于时间回溯,呐这个是第一步
select * from tableName as of timestamp to_timestamp('2021-08-19 04:13:22','yyyy-mm-dd hh24:mi:ss');
tableName 是你要查看的表名,2021-08-19 04:13:22是你想要查询的时间(时间不要离太久哦,不然快照过旧)。这样你可以查询到这个时间点之前的数据了,之后保险起见先建立一个表来存着吧,毕竟这时候你慌得一批
create table tableName_backups as
select * from tableName as of timestamp to_timestamp('2021-09-08 16:25:00','yyyy-mm-dd hh24:mi:ss');
这样之后你就有了一张查询这个时间段的表了,之后是要复制表
insert into tableName select * from tableName_backups ;
还是修改都随你了
这个查询不能不是万能的,所以删库跑路不可取,时间相隔太长这个语句就没啥用了,真要是使用了TRUNCATE这语句也没啥用了
分享了不慎删除大量数据后的紧急应对措施,包括通过时间戳查询恢复历史数据、创建备份表和复制数据的方法,提醒读者数据库操作中的重要性。

1906

被折叠的 条评论
为什么被折叠?



