`
esteem
  • 浏览: 156650 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

TRUNCATE 和 delete

阅读更多

面试的时候碰到个问题 TRUNCATE 和 delete的区别?

当时真感觉是晕忽忽的 从来没有听说过TRUNCATE。

现在百度才知道:

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 ST

DELETE语句执行删除的过程是每次从表中删除一行,并且同时将该行的的删除操作作为事务记录在日志中保存以便进行进行回滚操作。
TRUNCATE TABLE 则一次性地从表中删除所有的数据页并不把单独的删除操作记录记入日志保存,删除行是不能恢复的。并且在删除的过程中不会激活与表有关的删除触发器。执行速度快。

truncate完之后的表就是刚建表的状态
最重要的是identity重新计数,而delete不会

分享到:
评论

相关推荐

    sql中 truncate 和 delete 有什么区别

    -delete和truncate的区别 1. 条件语句:delete语句可以带有条件语句,以指定要删除的记录,而truncate语句不可以带有条件语句。 2. 删除方式:delete语句是一条条删除记录,而truncate语句是一次性删除整个表。 3. ...

    TRUNCATE与 DELETE区别

    在数据库管理中,TRUNCATE 和 DELETE 是两种用于删除数据的方法,它们各有其特定的适用场景和优缺点。本文将详细对比分析这两种操作的区别。 首先,TRUNCATE TABLE 是一种快速删除表中所有数据的方式,它并不记录每...

    dct233#blog#03-truncate和delete1

    truncate 和 delete 清空表数据的区别:truncate 是整体删除(速度较快),delete 是逐条删除(速度较慢);truncate 不激活

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

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

    sql之truncate、delete与drop区别

    在SQL语言中,`TRUNCATE`、`DELETE` 和 `DROP` 是三个非常重要的数据操作语句,它们各自有着不同的用途和特性。理解这些差异对于数据库管理至关重要,特别是对于数据安全性和性能优化方面。 首先,`TRUNCATE` 语句...

    实例理解SQL中truncate和delete的区别

    本文以一个简单实例为大家介绍了SQL中truncate和delete的区别,帮助大家理解,具体内容如下 ---创建表Table1 IF OBJECT_ID('Table1','U') IS NOT NULL DROP TABLE Table1 GO CREATE TABLE Table1 (ID INT NOT NULL,...

    sqlserver中drop、truncate和delete语句的用法

    在SQL Server中,数据删除操作通常涉及三种不同的语句:DROP、TRUNCATE和DELETE,它们各自有不同的用途和特点。 1. **DROP语句**: DROP主要用于彻底删除数据库对象,如表、视图、存储过程等。在表格上下文中,`...

    truncate,delete以及drop区别汇总

    `truncate`, `delete` 和 `drop` 是三种常见的 SQL 命令,它们在功能上有很大的差异。本文将详细探讨这三种命令之间的区别,并通过具体的场景分析来帮助读者更好地理解和使用这些命令。 #### 二、`truncate` 命令...

    详解MySQL中DROP,TRUNCATE 和DELETE的区别实现mysql从零开始

    在MySQL数据库管理中,删除数据是一项常见的操作,但有三种不同的方法可以实现这一目标:DROP、TRUNCATE和DELETE。虽然它们都能删除数据,但各自的功能、效率和使用场景都有所区别。 首先,DELETE语句是一种数据...

    秒懂drop、truncate和delete的区别

    `DROP`、`TRUNCATE`和`DELETE`是SQL中用于删除数据的三个关键命令,它们各自有不同的特性和应用场景。以下是它们的详细对比和解释: 1. **DELETE语句**: DELETE是一种数据操纵语言(DML),这意味着它涉及到对...

    truncate,delete,drop的异同点

    在数据库管理中,`TRUNCATE`, `DELETE`, 和 `DROP` 是三种常见的数据操作语言(DML)与数据定义语言(DDL)。这三种命令都有助于管理和调整数据库表结构及其中的数据,但它们之间的差异十分重要。 #### 1. TRUNCATE...

    数据库中truncate,delete,drop语句的比较

    - 相对于`TRUNCATE`和`DELETE`,`DROP`的操作更加强烈,因此在使用时需要格外小心。 - 使用`DROP`之后,与该表相关的所有对象都将变为无效状态。 #### 二、详细对比分析 1. **操作类型**: - `TRUNCATE`:属于...

    drop,truncate与delete的区别

    注意:这里说的delete是指不带where子句的delete语句 相同点 truncate和不带where子句的delete, 以及drop都会删除表内的数据 不同点: 1. truncate和 delete只删除数据不删除表的结构(定义) drop语句将删除表的结构被...

    SQL删除语句DROP、TRUNCATE、 DELETE 的区别

    在SQL中,删除数据有三种主要方式:DROP、TRUNCATE和DELETE。这些语句各自有不同的特性和适用场景,理解它们的区别对于有效地管理和维护数据库至关重要。 1. **DROP语句**: - DROP TABLE语句用于彻底删除一个表...

    sql之truncate_、delete与drop区别.pdf

    在SQL中,`TRUNCATE`、`DELETE`和`DROP`都是用于管理数据库表的重要命令,但它们之间存在显著的区别。本文将深入探讨这三种命令的功能、用法及其应用场景。 #### 相同点 `TRUNCATE`、不带`WHERE`子句的`DELETE`以及...

Global site tag (gtag.js) - Google Analytics