Oracle中truncate与delete的区别
来源:互联网 发布:安禄山为什么叛乱 知乎 编辑:程序博客网 时间:2024/05/21 01:31
truncate 是Oracle的关键字,在SQLServer数据库中也是存在的,功能一样。它的作用是清空一个表格,在删除数据方面,其与delete的一些区别如下:
1、在功能上,truncate是清空一个表的内容,它相当于delete from table_name。
2、delete是dml操作,truncate是ddl操作;因此,用delete删除整个表的数据时,会产生大量的roolback,占用很多的rollback segments, 而truncate不会。
3、在内存中,用delete删除数据,表空间中其被删除数据的表占用的空间还在,便于以后的使用,另外它是“假相”的删除,相当于windows中用delete删除数据是把数据放到回收站中,还可以恢复,当然如果这个时候重新启动系统(OS或者RDBMS),它也就不能恢复了!
而用truncate清除数据,内存中表空间中其被删除数据的表占用的空间会被立即释放,相当于windows中用shift+delete删除数据,不能够恢复!
4、truncate 调整high water mark 而delete不;truncate之后,TABLE的HWM退回到 INITIAL和NEXT的位置(默认)delete 则不可以。
5、truncate 只能对TABLE,delete 可以是table,view,synonym。
6、TRUNCATE TABLE 的对象必须是本模式下的,或者有drop any table的权限 而 DELETE 则是对象必须是本模式下的,或被授予 DELETE ON SCHEMA.TABLE 或DELETE ANY TABLE的权限。
7、在外层中,truncate或者delete后,其占用的空间都将释放。
8、truncate和delete只删除数据,而drop则删除整个表(结构和数据)。
- Oracle 中truncate与delete的区别
- Oracle 中truncate与delete的区别
- Oracle 中truncate与delete的区别
- Oracle 中truncate与delete的区别
- Oracle 中truncate与delete的区别
- Oracle 中truncate与delete的区别
- Oracle 中truncate与delete的区别
- Oracle中truncate与delete的区别
- Oracle 中truncate与delete的区别
- Oracle 中truncate与delete的区别
- Oracle 中truncate与delete的区别
- Oracle 中truncate与delete的区别
- Oracle 中truncate与delete的区别【转】
- Oracle 中 DELETE 与 TRUNCATE 语句的区别及优缺点
- oracle中truncate table与delete的区别
- oracle truncate与delete的区别
- Oracle 中truncate和delete的区别
- oracle中delete和truncate的区别
- ExtJS buttons
- 《转载》Android AlertDialog 方法setView(view,0,0,0,0)的使用
- SQL Server 索引
- 开博啦
- 使用Cactus+Jetty进行servelt的单元测试
- Oracle中truncate与delete的区别
- 解决VS2008 开发Windows Mobile 项目生成速度慢的问题
- USACO 4.1分析
- 全面介绍网站性能优化之数据库及服务器架构实现负载均衡等实用知识
- Linux字符设备驱动程序的注册
- 算法导论:插入排序
- 找个东西都这么难
- ABSTRACT的方法是否可同时是STATIC,是否可同时是NATIVE,是否可同时是SYNCHRONIZED?
- 运行 sqlwb 无法使用