`
H小阿飞
  • 浏览: 278537 次
  • 性别: Icon_minigender_1
  • 来自: 南通
社区版块
存档分类
最新评论

Oracle 删除操作 truncate与delete区别

阅读更多

 

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';即可

 

分享到:
评论

相关推荐

    delete,truncate和drop的区别

    - 如果有触发器与删除操作相关联,则会在删除过程中触发这些触发器。 - `delete`操作不会改变表的高水线(HWM)。 - **应用场景**: - 当需要根据特定条件删除数据行时使用。 - 如果需要触发特定的触发器事件或...

    ORACLE truncate 数据恢复

    由于`TRUNCATE`不记录单行删除,所以它在速度上比`DELETE`快很多,且不触发任何与删除相关的触发器或回滚段。然而,这也意味着`TRUNCATE`操作一旦执行,数据就无法通过正常的数据库事务回滚来恢复,这对于初学者来说...

    oracle中truncate table后的数据恢复

    在Oracle数据库中,`TRUNCATE TABLE`是一个用于删除表中所有数据的命令,它与`DELETE`语句不同,不记录任何删除操作,并且在大多数情况下执行速度更快。然而,一旦执行`TRUNCATE TABLE`,数据通常无法通过常规的...

    oracle数据库删除数据Delete语句和Truncate语句的对比.docx

    Oracle 数据库删除数据 Delete 语句和 Truncate ...在删除大量数据时,Truncate 语句的速度较快,但是 Delete 语句可以根据条件删除数据,并且可以回退删除操作。因此,在选择删除语句时,需要根据实际情况进行选择。

    利用 Oracle 系统触发器防止误删除表操作

    ### 利用Oracle系统触发器防止误删除表操作 #### 背景介绍 在企业级应用中,数据库的安全性和稳定性至关重要。Oracle作为一款广泛使用的数据库管理系统,提供了丰富的功能来保障数据安全。其中,系统触发器是Oracle...

    oracle数据库删除数据Delete语句和Truncate语句的对比.pdf

    在Oracle数据库管理中,删除数据是一项常见的操作,通常有两种主要的方式:Delete语句和Truncate语句。这两种语句在功能上相似,都是用来移除表中的数据,但在执行效率和资源消耗上存在显著差异。 一、Delete语句 ...

    详解Truncate delete drop三者的区别

    详细阐述了Oracle中三种删除的方式truncate,drop和delete三者的区别和联系.

    SQL语句中----删除表数据drop、truncate和delete的用法

    SQL语句中----删除表数据drop、truncate和delete的用法,对你爱不完

    oracle数据库删除数据Delete语句和Truncate语句的使用比较

    在Oracle数据库中,删除表中数据有两种主要方式:Delete语句和Truncate语句。两者在功能上相似,但有着显著的区别,适用于不同的场景。 **Delete语句** Delete语句是一种灵活的数据删除方式,它可以有条件地删除...

    Oracle给用户授权truncatetable的实现方案

    在Oracle数据库管理中,有时需要为特定用户授权执行`TRUNCATE TABLE`操作,以便他们在自己的职责范围内能够清理数据而不影响其他用户。然而,Oracle不支持直接为用户授予针对单个表的`TRUNCATE`权限,而是通常将更...

    Oracle删除语句.txt

    根据提供的文件信息,本文将详细解释Oracle数据库中的删除操作,包括DELETE、DROP以及TRUNCATE三个主要命令。这些命令在数据库管理中极为重要,能够帮助我们有效地管理数据表中的记录或整个表结构。 ### Oracle删除...

    Oracle表删除大量数据(千万)后查询变慢问题(原因分析)

    在解决问题之前,首先需要使用 delete 语句删除大量数据,然后使用 truncate table 语句清空表空间。接着,使用 analyze table 语句重新分析表的统计信息,以便提高查询效率。 analyze 语句的作用是收集表的统计...

    oracle数据操作和控制语言详解

    TRUNCATE 和 DELETE 都可以用来删除表中的数据,但它们有以下几点区别: * TRUNCATE 在各种表上无论是大的还是小的都非常快。 * TRUNCATE 是一个 DDL 语言,向其他所有的 DDL 语言一样,他将被隐式提交,不能对 ...

    Oracle恢复truncate删除表的数据.pdf

    与`DELETE`语句不同,`TRUNCATE`不记录任何删除操作,因此无法通过常规的事务回滚来恢复数据。然而,Oracle提供了一些高级恢复功能,如闪回技术,可以在特定条件下恢复被`TRUNCATE`删除的数据。 1. **闪回功能**: ...

    oracle truncate恢复

    然而,与`DELETE`语句不同的是,`TRUNCATE`操作是非事务性的且无法通过普通的ROLLBACK机制撤销。因此,在执行`TRUNCATE`后若需要恢复被删除的数据,则需采取其他策略。 #### 一、Oracle Truncate 概念解析 在...

    Oracle恢复truncate删除表的数据.docx

    在Oracle数据库中,`TRUNCATE TABLE`是一个用于删除表中所有数据的命令,与`DELETE`语句不同,`TRUNCATE`不记录任何删除操作,因此它不能通过闪回查询(Flashback Query)来恢复。当你执行`TRUNCATE TABLE`后,数据...

    Oracle恢复误删除数据

    在 Oracle 中,delete 方法可以使用闪回方法恢复删除的数据。如果在删除数据后还没有进行大量的操作(只要保证被删除数据的块没有被覆写),就可以利用闪回方式直接找回删除的数据。 首先,需要确定删除数据的时间...

Global site tag (gtag.js) - Google Analytics