`

TRUNCATE 命令用法

阅读更多
语法
TRUNCATE TABLE name

参数
name

是要截断的表的名称或要删除其全部行的表的名称。

注释
TRUNCATE TABLE 在功能上与不带 WHERE 子句的 DELETE 语句相同:二者均删除表中的全部行。但 TRUNCATE TABLE 比 DELETE 速度快,且使用的系统和事务日志资源少。

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

TRUNCATE TABLE 删除表中的所有行,但表结构及其列、约束、索引等保持不变。新行标识所用的计数值重置为该列的种子。如果想保留标识计数值,请改用 DELETE。如果要删除表定义及其数据,请使用 DROP TABLE 语句。

对于由 FOREIGN KEY 约束引用的表,不能使用 TRUNCATE TABLE,而应使用不带 WHERE 子句的 DELETE 语句。由于 TRUNCATE TABLE 不记录在日志中,所以它不能激活触发器。

TRUNCATE TABLE 不能用于参与了索引视图的表。

示例
下例删除 authors 表中的所有数据。

TRUNCATE TABLE authors
权限
TRUNCATE TABLE 权限默认授予表所有者、sysadmin 固定服务器角色成员、db_owner 和 db_ddladmin 固定数据库角色成员且不可转让。

分享到:
评论

相关推荐

    ORACLE truncate 数据恢复

    在Oracle数据库中,`TRUNCATE TABLE`命令用于删除表中的所有数据,但它与`DELETE`语句有所不同。`TRUNCATE`操作是DDL(Data Definition Language)的一部分,而`DELETE`是DML(Data Manipulation Language)。由于`...

    truncate,delete以及drop区别汇总

    本文将详细探讨这三种命令之间的区别,并通过具体的场景分析来帮助读者更好地理解和使用这些命令。 #### 二、`truncate` 命令详解 **1. 定义** `truncate table` 命令用于快速清空表中的所有数据,但保留表结构...

    truncate,delete,drop的异同点

    - **作用**:`TRUNCATE` 命令主要用于快速清空一个表中的所有数据,同时重置表中的自动增长字段。它不会删除表结构本身。 - **特点**: - **速度快**:由于 `TRUNCATE` 不记录日志信息,因此执行速度非常快。 - **...

    MySQL:删除数据库的实用命令中

    MySQL 删除数据库的实用命令 MySQL 作为一款流行的关系型数据库,可以帮助开发人员方便快捷地储存数据以及完成增删改查等操作。在 MySQL 中,要删除数据库...如果需要删除表格中的所有记录,可以使用 TRUNCATE 命令。

    Oracle中Truncate表的恢复方法.pdf

    首先,需要使用 LogMiner 找到 Truncate 命令执行的 SCN 值。可以使用以下 SQL 语句: ``` ALTER SESSION SET NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS'; SELECT LAST_DDL_TIME FROM DBA_OBJECTS WHERE OWNER='...

    oracle中truncate table后的数据恢复

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

    MySQL Truncate用法详解

    MySQL Truncate命令是一种用于清空表中所有数据的数据库操作,它是数据定义语言(DDL)的一部分,而不是数据操纵语言(DML)。与Delete语句不同,Truncate在删除数据时跳过了记录删除的过程,因此执行速度更快,但...

    sql之truncate_、delete与drop区别.pdf

    本文将深入探讨这三种命令的功能、用法及其应用场景。 #### 相同点 `TRUNCATE`、不带`WHERE`子句的`DELETE`以及`DROP`这三个命令都能实现删除数据的效果。然而,它们的操作对象和后续影响有着本质的不同。 #### ...

    truncate 表恢复

    由于`TRUNCATE`操作的这种特性,如果意外执行了`TRUNCATE`命令,理论上可以通过某些手段恢复被清空的数据。但是需要注意的是,一旦新的数据写入这些被释放的数据块,原始数据就会被覆盖,从而无法恢复。因此,在发现...

    Truncate表恢复(无备份情况下)

    在数据库管理中,`TRUNCATE`命令是一种快速清空表数据的方法。与`DELETE`不同的是,`TRUNCATE`不会逐一删除数据行,而是重置数据字典中的元数据信息,使表返回到初始状态。这一操作虽然高效,但同时也带来了数据恢复...

    SQL中Truncate的用法

    综上所述,`TRUNCATE`是一个高效、快捷的清空表数据的命令,适合在不需要保留历史数据或触发其他逻辑的情况下使用。然而,如果涉及到事务、触发器、外键约束或需要保留自动递增字段的计数值,应当考虑使用`DELETE`或...

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

    - `TRUNCATE`可以释放未使用的存储空间,并且允许再次使用这些空间。 - `DELETE`则不会释放存储空间,只是将数据标记为已删除,高水位线(high watermark)保持不变。 - `DROP`则会完全释放表所占用的空间。 5. ...

    truncate表恢复

    在数据库管理中,"TRUNCATE"命令是一个用于删除表中所有数据的高效操作,它与"DELETE"命令相似但有所不同。"TRUNCATE"不记录单个行的删除,因此速度更快,同时也不触发与删除操作相关的任何触发器或回滚段。然而,这...

    truncate功能测试报告1

    测试的焦点在于`TRUNCATE`命令,这是一个数据库操作语句,用于快速删除表中的所有数据,但保留表结构、索引和约束。与`DELETE`语句不同,`TRUNCATE`不记录单行删除,而是将整个数据段标记为可重用,这使得它在处理...

    oracle truncate恢复

    在Oracle数据库管理中,`TRUNCATE`命令是一种高效的数据清除方式,常用于快速清空表中的所有数据。然而,与`DELETE`语句不同的是,`TRUNCATE`操作是非事务性的且无法通过普通的ROLLBACK机制撤销。因此,在执行`...

    Oracle_审计表_sys.aud$_授权给用户Truncate权限.docx

    - **查看存储过程定义**:如果需要查看已创建的存储过程的具体内容,可以使用以下命令: ```sql SELECT TEXT FROM USER_SOURCE WHERE NAME = UPPER('PROC_TRUNCATE_AUD') ORDER BY LINE; ``` - **删除存储...

    SDELayer命令详解

    12. Truncate命令:最后文档提到的Truncate命令,虽然命令行被截断,但该命令通常用于快速删除表中的所有记录而不删除表本身。 通过上述命令,SDELayer为管理员和开发者提供了一整套强大的空间数据管理工具集,可...

    MySQL中truncate误操作后的数据恢复案例

    在MySQL数据库管理中,误操作是一个常见的问题,尤其是像`TRUNCATE TABLE`这样的命令,它会立即删除表中的所有数据且无法通过`ROLLBACK`撤销。本案例将详细讲解如何在MySQL中,特别是在Percona Server 5.6.16环境下...

    Truncate Table的用法讲解

    `TRUNCATE TABLE` 是 SQL 语言中一种用于删除表中所有数据的命令,但它与 `DELETE` 语句有着显著的区别。这篇文章将深入讲解 `TRUNCATE TABLE` 的使用方法,以及它与 `DELETE` 的对比,同时涵盖权限、适用场景及注意...

Global site tag (gtag.js) - Google Analytics