【Oracle】回滚/闪回误差入数据

本文介绍了在Oracle数据库中遇到数据误插入的问题时,如何进行回滚和利用闪回功能进行修复。提供了两种解决方案,包括将错误数据转移至新表并替换原表,以及使用Oracle的闪回功能进行纠正。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、问题描述

Oracle数据误插入,希望回滚。

二、问题解决

思路一:将插错的数据插入到新表,然后将旧表删除,新表改为旧表名。
思路二:利用Oracle的闪回功能(据说是9i以后的版本才有此功能,未核实)

--验证希望闪回到某时间点的之后的数据条数,是否是刚刚插入的条数
select COUNT(*) from TABLE_NAME as of timestamp to_timestamp('2022-08-09 13:40:00','yyyy-mm-dd hh24:mi:ss')
MySQL支持使用事务回滚/恢复数据。当一个事务失败时,可以使用回滚操作来撤销所有已经执行的操作,让数据库恢复到原来的状态。以下是回滚/恢复数据的方法: 1. 使用ROLLBACK语句: 可以使用ROLLBACK语句来回滚事务。它将撤销所有已经执行的操作,使数据库恢复到事务开始之前的状态。例如: ``` START TRANSACTION; UPDATE employees SET salary = salary + 1000 WHERE id = 1; UPDATE employees SET salary = salary - 500 WHERE id = 2; ROLLBACK; ``` 这里我们使用START TRANSACTION来开始一个事务,然后执行两个UPDATE语句来修改数据。最后,如果事务出现了问题,我们可以使用ROLLBACK来回滚事务。 2. 使用SAVEPOINT语句: 可以使用SAVEPOINT语句来创建一个保存点,以便在需要时回滚到该点。例如: ``` START TRANSACTION; UPDATE employees SET salary = salary + 1000 WHERE id = 1; SAVEPOINT my_savepoint; UPDATE employees SET salary = salary - 500 WHERE id = 2; ROLLBACK TO my_savepoint; COMMIT; ``` 这里我们使用START TRANSACTION来开始一个事务,然后执行两个UPDATE语句来修改数据。在第二个UPDATE语句之前,我们使用SAVEPOINT my_savepoint来创建一个保存点。最后,如果事务出现了问题,我们可以使用ROLLBACK TO my_savepoint来回滚到该保存点。 3. 使用MySQL Workbench: 如果您使用MySQL Workbench来管理MySQL数据库,可以使用其内置的恢复工具来回滚/恢复数据。在MySQL Workbench中,选择菜单“Server”->“Data Export”或“Data Import”,然后按照界面上的提示进行操作即可。 注意:回滚操作将撤销所有已经执行的操作,包括插入、更新和删除数据,而恢复操作只会恢复已经备份的数据。因此,在执行回滚/恢复操作之前,请务必备份好重要数据
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值