Oracle 删去操作 truncate与delete差异ITeye - 众发娱乐

Oracle 删去操作 truncate与delete差异ITeye

2019年03月14日12时37分45秒 | 作者: 妙之 | 标签: 操作,删去,不能 | 浏览: 2381

 

truncate,能够删去表中的一切记载,开释表空间,只保存表结构,语法是:truncate table tableName;

 

delete,假如没有where条件,也是删去表中的一切记载,可是它不开释空间,语法是:delete tableName where 条件。

 

truncate与delete的差异包含一下几点:

 

1、TRUNCATE在各种表上无论是大的仍是小的都非常快。假如有ROLLBACK指令DELETE将被吊销,而TRUNCATE则不会被吊销。

 

2、TRUNCATE是一个DDL言语,向其他一切的DDL言语相同,他将被隐式提交,不能对TRUNCATE运用ROLLBACK指令。

 

3、TRUNCATE将从头设置高水平线和一切的索引。在对整个表和索引进行彻底阅读时,通过TRUNCATE操作后的表比DELETE操作后的表要快得多。

 

4、TRUNCATE不能触发任何DELETE触发器。

 

5、不能颁发任何人清空别人的表的权限。

 

6、当表被清空后表和表的索引讲从头设置成初始巨细,而delete则不能。

 

7、不能清空父表。

 

TRUNCATE TABLE (schema)table_name DROP(REUSE) STORAGE 在默许是 DROP STORAGE 当运用DROP STORAGE时将缩短表和表索引,将表收缩到最小规模,并从头设置NEXT参数。REUSE STORAGE不会缩短表或许调整NEXT参数在特别情况下运用 REUSE STORAGE。

 

 

默许在存储过程中是不允许履行truncate table tablename操作,

选用如下办法:

execute   immediate truncate table tablename;即可

 

版权声明
本文来源于网络,版权归原作者所有,其内容与观点不代表众发娱乐立场。转载文章仅为传播更有价值的信息,如采编人员采编有误或者版权原因,请与我们联系,我们核实后立即修改或删除。

猜您喜欢的文章