oracle中的truncate
语法: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;
未选定行
语法: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;
未选定行