首页>>互联网 >>内容

truncate和delete有什么区别? truncate

发布时间:2023-06-09 12:26:23编辑:温柔的背包来源:

网上有很多关于truncate和delete有什么区别?的问题,也有很多人解答有关truncate的知识,今天每日小编为大家整理了关于这方面的知识,让我们一起来看下吧!

内容导航:

一、truncate和delete有什么区别?

一、truncate和delete有什么区别?

1、truncate从功能上来说就是清空一个表的内容,相当于delete from table_name。2、delete是dml操作,truncate是ddl操作;所以用delete删除整表数据时,会产生大量回滚,占用大量回滚段,而truncate不会。3、在内存中,使用delete删除数据,被删除的数据表在表空间中占用的空间还在,方便以后使用。另外,它是一种“假”删除,相当于windows用delete删除数据,把数据放到回收站,可以恢复。当然,如果此时重启了系统(OS或RDBMS),就无法恢复了!而使用truncate清除数据,内存中表空间中被删除数据的表占用的空间会立即释放,相当于在windows中使用shift+delete删除数据,而且无法恢复!4、truncate调整高水位,delete不调整; truncate 后,TABLE 的HWM 回到INITIAL 和NEXT(默认)位置不允许删除。5、truncate 只能是TABLE,delete 可以是表,视图,同义词。6、TRUNCATE TABLE对象必须是这个模式,或者有删除任意表的权限,DELETE对象必须是这个模式,或者被授予DELETE ON SCHEMA.TABLE或DELETE ANY表权限。7、在外层,truncate或delete后,占用的空间会被释放。8、truncate和delete只删除数据,而drop删除整个表(结构和数据)。扩展信息Oracle Database,又称Oracle RDBMS,简称Oracle。它是由甲骨文公司开发的关系数据库管理系统。是一直在数据库领域处于领先地位的产品。可以说,Oracle数据库系统是目前国际上流行的关系型数据库管理系统。该系统便携性好,使用方便,功能强大,适用于各种大、中、小型、微机环境。它是一种高效、可靠和适应性强的高吞吐量数据库解决方案。

以上就是关于truncate和delete有什么区别?的知识,后面我们会继续为大家整理关于truncate的知识,希望能够帮助到大家!