oracle commit之后的数据回滚

当你晕晕乎乎的执行了commit之后,突然间意思到自己点错了,那说明你和我碰到了一样的问题。

瞬间感觉大冷天头顶冒汗,那就说明你的感觉对了。废话少说,下面是我的办法:

下面的例子都是以Test表为例。

select t.*,t.rowid from Test t;-----执行了一堆命令commit;意识到自己点错了。

开始恢复了select * from Test as of timestamp to_timestamp(‘2016-12-29 15:04:56‘,‘yyyy-mm-dd hh24:mi:ss‘);上面的代码就可以查看你要恢复的时间点的记录,看看是不是你想要的记录。

能看到,剩下的就简单了,可以把现在表中的数据备份到一个临时表,然后把记录差插进去就行了

不要用truncate删除,不然你就回不去了,到时候你就要哭了!!!!!!!delete from Test;insert into Test select * from Test as of timestamp to_timestamp(‘2016-12-29 15:24:27‘,‘yyyy-mm-dd hh24:mi:ss‘);commit;
时间: 2025-01-20 04:48:54

oracle commit之后的数据回滚的相关文章

C# 数据回滚

public int GetExecteQuery(string strAddSql, string strUpdateSql, string strDelSql) { SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["GPSP_SQL"]);//实例化数据连接 //SqlConnection conn = new SqlConnection(CO

【MySQL】通过Binary Log简单实现数据回滚(一)

一.前言 对,没错,我又水了好一阵子,深刻反思寄几.前段时间,工作项目上出于对excel等批量操作可能出现误操作的问题,要求提供一个能够根据操作批次进行数据回滚的能力.在开发的过程中接触到了MySQL的Binary Log,感觉有些收获,记录一下. 二.Binary Log的概念 首先我们要了解一下什么是Binary Log(详情点进去看): Binary Log(二进制文件),包含了描述数据库更改的"事件",例如创建表的操作或者改变表的数据.如果采用基于行的日志,它还能包含已经发生更

错删之前的数据回滚

执行如下sql语句,可对之前删掉的数据回滚: Insert into CRM_ORDER  select *    from  CRM_ORDER as of timestamp to_timestamp('2016-04-23 01:40:00','yyyy-mm-dd hh24:mi:ss')

Oracle 事务操作(事务的回滚与提交)

在看本文之前,请确保你已经了解了Oracle事务和锁的概念即其作用,不过不了解,请参考数据库事务的一致性和原子性浅析和Oracle TM锁和TX锁 1.提交事务 当执行使用commit语句可以提交事务.当执行了commit语句后,会确认事务的变化.结束事务.删除保存点.释放锁.在此之前,与当前事务相关的数据都会被加锁,直到当前事务进行了commit操作,如果在这个过程中有其他回话试图操作相关数据,(这些数据已经被当前事务加锁),那么其他回话会进行等待,或者直接返回错误. 注意:只有在提交事务之后

Oracle .事物,提交,回滚

事物(transaction) -->作为单个逻辑工作单元执行的一系列操作(要么全部成功要么全部失败) 提交(commit) -->系列操作全部成功的场合才会执行 回滚(rollback) -->系列操作其中有一条失败的时候就执行rollback

记一次腾讯云MySQL数据库数据回滚

如题,因为操作人员的问题,需要对数据库数据进行回滚. 可以看到,设置了7天自动备份,且是物理冷备. 什么是物理冷备?科普一下: (1)热备:在数据库运行时,直接进行备份,对运行的数据库没有影响.(2)冷备:在数据库停止运行的时候进行备份,这种备份方式最为简单,只需要拷贝数据库物理文件即可.(3)温备:同样是在数据库运行的时候进行备份的,但对当前数据库的操作会产生影响. 热备份的缺点: 1.尽量不要出错,否则后果会很严重. 2.如果热备份不成功,所得结果不可用于时间点的数据恢复. 3.维护的工作比

conn.setAutoCommit(false)数据回滚设置

前言:介绍一点爱混淆的概念. 1.mysql中默认 autocommit=1:事物自动提交. 可通过 select @@autocommit;查看 但是是设置事务自动提交模式为set autocommit = 0, 也就是不自动提交.自此句执行以后,每个SQL语句或者语句块所在的事务都需要显示"commit"才能提交事务. 2.start transaction 是声明开始一个事务.然后执行sql语句,最后执行commit. 再来说今天的重点,其实也很简单. JDBC中的这个参数:co

6. Oracle 回滚(ROLLBACK)和撤销(UNDO)

转载自:http://blog.csdn.net/leshami/article/details/5731158 一.回滚(ROLLBACK)和撤销(UNDO) 回滚和前滚是保证Oracle数据库中的数据处于一致性状态的重要手段. --在9i版本以前 Oracle使用数据库中的回滚段来实现未提交数据或因系统故障导致实例崩溃时进行回滚操作 每一个表空间需要创建回滚段,各个表空间对回滚段实现各自的管理 --在9i及后续版本 提供了一种新的回滚数据的管理方式,即使用Oracle自动管理的撤销(Undo

MySQL通过binlog日志回滚数据

一.数据库在进行数据更改操作时,会出现数据误操作导致数据异常的情况,所以数据安全是重中至重,对于数据库服务,必须开启binlog日志服务,保证数据的安全,可逆回滚.二进制日志的格式有三种形式分别为ROW.Statement以及MiXED1.STATMENT模式:基于SQL语句的复制(statement-based replication, SBR),每一条会修改数据的sql语句会记录到binlog中. 优点:不需要记录每一条SQL语句与每行的数据变化,这样子binlog的日志也会比较少,减少了磁