oracle drop table 中间被终止会删除表中的数据吗...

IT-Style 2013-01-08 03:17:49
oracle 表中数据量很多,我用drop table 方式删除一个表,但中间终止了操作,问一下表中的数据会被删除一部分吗?对表有什么影响...
...全文
626 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
leeyin 2013-01-10
  • 打赏
  • 举报
回复
学习学习了。。。。。以后不能随便删了。
Seven_Ginna 2013-01-10
  • 打赏
  • 举报
回复
只要这条命令成功发送给oracle,就肯定会被全部删除,不存在部分删除的情况。要么就中止的及时,但原因是这条指令没有发出,并不是oracle收到而没做删除的操作,只要收到这条指令,oracle内部就会执行删除。。
leeyin 2013-01-09
  • 打赏
  • 举报
回复
曾经做过一个上头的事情,直接drop table,一执行就发现中止了,所幸表都还在。。 要是当时真出了啥问题。。。想屎的心都有了。
iqlife 2013-01-09
  • 打赏
  • 举报
回复
肯定被删除了,这种中止基本上是异常操作,只有刚执行的时候中止,估计能挽回
linwaterbin 2013-01-09
  • 打赏
  • 举报
回复
引用 8 楼 softkexin 的回复:
引用 1 楼 linwaterbin 的回复:数据会被全部删除,没有放在undo里面,也无法rollback 如果空间压力不大,而且操作及时,可以flashback to before drop回来 但是我看到表没被删除而且存在以前的数据,我的意思是会不会删除部分数据?
那是因为你终止的及时
linwaterbin 2013-01-09
  • 打赏
  • 举报
回复
引用 8 楼 softkexin 的回复:
引用 1 楼 linwaterbin 的回复:数据会被全部删除,没有放在undo里面,也无法rollback 如果空间压力不大,而且操作及时,可以flashback to before drop回来 但是我看到表没被删除而且存在以前的数据,我的意思是会不会删除部分数据?
会全部被删!
IT-Style 2013-01-09
  • 打赏
  • 举报
回复
引用 1 楼 linwaterbin 的回复:
数据会被全部删除,没有放在undo里面,也无法rollback 如果空间压力不大,而且操作及时,可以flashback to before drop回来
但是我看到表没被删除而且存在以前的数据,我的意思是会不会删除部分数据?
Galen_Gao 2013-01-09
  • 打赏
  • 举报
回复
study...
UPC子夜 2013-01-08
  • 打赏
  • 举报
回复
引用 3 楼 linwaterbin 的回复:
……
实测了一下 确实表被删了 有一点不明白 既然中止了 为什么表还是被删了? 那中止和不中止有啥区别吗?
linwaterbin 2013-01-08
  • 打赏
  • 举报
回复
引用 2 楼 UPC05070000 的回复:
引用 1 楼 linwaterbin 的回复:数据会被全部删除,没有放在undo里面,也无法rollback 如果空间压力不大,而且操作及时,可以flashback to before drop回来 楼主的意思是 操作终止了,就是说drop操作没有完成是吧 既然表没有drop掉 数据也不会丢失吧 这应该是一个事务
Drop 是DDL语句,作用于元数据 sys@ORCL> create table t2 as select * from dba_source; Table created. sys@ORCL> insert into t2 select * from t2; 292781 rows created. sys@ORCL> insert into t2 select * from t2; 585562 rows created. sys@ORCL> insert into t2 select * from t2; 1171124 rows created. sys@ORCL> select count(*) from t2; --200多W数据 COUNT(*) ---------- 2342248 sys@ORCL> drop table t2; --这里我ctrl+c终止掉 drop table t2 * ERROR at line 1: ORA-00604: error occurred at recursive SQL level 1 ORA-01013: user requested cancel of current operation sys@ORCL> select count(*) from t2; select count(*) from t2 * ERROR at line 1: ORA-00942: table or view does not exist
UPC子夜 2013-01-08
  • 打赏
  • 举报
回复
引用 1 楼 linwaterbin 的回复:
数据会被全部删除,没有放在undo里面,也无法rollback 如果空间压力不大,而且操作及时,可以flashback to before drop回来
楼主的意思是 操作终止了,就是说drop操作没有完成是吧 既然表没有drop掉 数据也不会丢失吧 这应该是一个事务
linwaterbin 2013-01-08
  • 打赏
  • 举报
回复
数据会被全部删除,没有放在undo里面,也无法rollback 如果空间压力不大,而且操作及时,可以flashback to before drop回来

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧