Oracle delete truncate drop 的区别
来源:互联网 发布:淘宝缺斤少两 编辑:程序博客网 时间:2024/04/28 12:01
1. delete/truncate 只删除数据不删除表,索引的结构。 drop 将删除表的结构及依赖的 index/constrain/trigger,依赖于该表的 procedure/function 将保留,但是变为 invalid 状态;
2. delete 是 dml,写 rollback segement,可回滚,速度慢,事务提交之后才生效。在 9i 满足 undo_retention 条件下可使用 flashback。一次性大批量数据的 delete 可能导致回滚段急剧扩展从而影响到数据库,慎用,触发 trigger。 truncate/drop 是 ddl,隐式提交,不写 rollback segment,不能回滚,速度快。9i 不能使用 flashback,不触发 trigger;
3. delete 不影响表所占用的 extent,HWM 保持原位置不动,即使删除的是最靠近 HWM 的数据。delete 其实也可以释放空间,但是不降低 HWM,delete 后 block 的空闲空间达到 pct_used,就可以重用。 truncate 缺省情况下将空间(表和索引)释放到 minextents 个 extent,除非使用 reuse storage。truncate 会将高水线复位(回到最开始)。 drop 将表所占用的空间全部释放,segment 不存在,无所谓 HWM 的概念;
Oracle 高水位(HWM)
http://blog.csdn.net/tianlesoftware/archive/2009/10/22/4707900.aspx
4. truncate/drop 的对象必须是本模式下的,或者被授予 drop any table 的权限,但 drop any table 权限不能 truncate/drop sys 的表。 delete 的对象必须是本模式下的,或者被授予 delete on SCHEMA.table 或 delete any table 的权限,但 delete any table 权限不能 delete sys 的表;
5. 不能 truncate 一个带有 enable 外键的表,不管表里有没有数据,如果要 truncate,首先要 disable 外键或者删除外键(drop 外键的表肯定是删除了外键)。不能 drop 一个带有 enable 外键的表,不管表里有没有数据,如果要 drop,首先要删除外键,或者直接用 drop table TABLE_NAME cascade constraints; 级联删除外键。 delete 可以。
转载自网络
------------------------------------------------------------------------------
Blog: http://blog.csdn.net/tianlesoftware
网上资源: http://tianlesoftware.download.csdn.net
相关视频:http://blog.csdn.net/tianlesoftware/archive/2009/11/27/4886500.aspx
DBA1 群:62697716(满); DBA2 群:62697977
- Oracle delete truncate drop 的区别
- Oracle delete truncate drop 的区别
- Oracle delete truncate drop 的区别
- Oracle delete truncate drop 的区别
- oracle中delete、truncate、drop的区别
- Oracle delete truncate drop 的区别
- Oracle delete truncate drop 的区别
- oracle中delete、truncate、drop的区别
- Oracle的drop、delete、truncate区别
- oracle常见问题:delete truncate drop的区别
- oracle中delete、truncate、drop的区别
- Oracle中 delete,truncate,drop的区别
- oracle--delete&drop&truncate区别
- Oracle truncate、 delete、 drop区别
- truncate,delete,drop的区别
- DELETE/TRUNCATE/DROP的区别
- drop ,truncate,delete 的区别
- delete、truncate、drop的区别
- C++标准库
- myeclipse8.0安装extJs的IDE--spket
- iOS UITableViewCell透明度 和 cell文字居中
- spring 在web.xml中的配置
- 周期串
- Oracle delete truncate drop 的区别
- CMake快速入门教程:实战
- 三轴高速激光扫描振镜
- 【Lucene】挖掘相关搜索词
- IOS UI Automation
- C++中“引用”的底层实现
- androidPN java.lang.NoClassDefFoundError: org.androidpn.client.解决方法
- UVA1292-----Strategic game-----树形DP解决树上的最小点覆盖问题
- 详解Spring