2019-11-06
关于数据的删除问题
5M通过sql*loader,direct=y直接路径的方式导入68w行数据,后来发现导入错了,需要删除刚刚导入的数据,但是数据库没有开启flashback闪回,如何利用undo的机制,删除误导入的数据,能否给出个具体的SQL参考,谢谢!
收藏
分享
3条回答
默认
最新
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
墨值悬赏
5M通过sql*loader,direct=y直接路径的方式导入68w行数据,后来发现导入错了,需要删除刚刚导入的数据,但是数据库没有开启flashback闪回,如何利用undo的机制,删除误导入的数据,能否给出个具体的SQL参考,谢谢!
有主键的情况下供参考:
delete from tab where id not in (
SELECT id FROM tab AS OF TIMESTAMP TO_TIMESTAMP('2019-11-06 09:30:00', 'YYYY-MM-DD HH:MI:SS')
)
可以尝试的是:
--直接创建新表,然后rename
create table TABBAK as select * FROM tab AS OF TIMESTAMP TO_TIMESTAMP('2019-11-06 09:30:00', 'YYYY-MM-DD HH:MI:SS');
--先备份再去处理
create table TAB_BAK1 as select * FROM tab AS OF TIMESTAMP TO_TIMESTAMP('2019-11-06 09:30:00', 'YYYY-MM-DD HH:MI:SS');
create table TAB_BAK2 as select * FROM tab;
评论
有用 0表没有主键,如果想采用delete的方式,该怎么做?
表比较大,采用CTAS重新建表的方式不太适合。
评论
有用 0
墨值悬赏