Oracle中的truncate用法

2015-04-07 14:10:12 · 作者: · 浏览: 97

语法:TRUNCATE? TABLE? table;


在使用truncate语句(DDL语言)可以删除表中的所有记录。使用truncate语句删除数据时,通常要比使用delete语句快得多,这是因为使用truncate语句删除数据时,不会产生任何回退信息,因此执行truncate语句操作也不能回退,且使用的系统和事务日志资源少。


DELETE 语句每次删除一行,并在事务日志中为所删除的每行记录一项。TRUNCATE TABLE 通过释放存储表数据所用的数据页来删除数据,并且只在事务日志中记录页的释放。


在truncate语句中还可以使用reuse storage关键字,表示删除记录后任然保存记录所占用的空间;与此相反,如果使用drop storage关键字,则表示删除记录后立即回收记录所占的空间。默认使用drop storage关键字。


SQL> create table tt(


2? tid number(4)


3? );


SQL> insert into tt values(1);


已创建 1 行。


SQL> insert into tt values(2);


已创建 1 行。


SQL> insert into tt values(3);


已创建 1 行。


SQL> insert into tt values(4);


已创建 1 行。


SQL> insert into tt values(5);


已创建 1 行。


SQL> truncate table tt reuse storage;


表被截断。


SQL> select * from tt;


未选定行