TRUNCATE TABLE
删除表中的所有行,而不记录单个行删除操作。
语法
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 固定数据库角色成员且不可转让。
该博文转自:
http://blog.sina.com.cn/s/blog_6a3c4c270100x379.html
分享到:
相关推荐
在Oracle数据库中,`TRUNCATE TABLE`是一个用于删除表中所有数据的命令,它与`DELETE`语句不同,不记录任何删除操作,并且在大多数情况下执行速度更快。然而,一旦执行`TRUNCATE TABLE`,数据通常无法通过常规的...
这篇文章将深入讲解 `TRUNCATE TABLE` 的使用方法,以及它与 `DELETE` 的对比,同时涵盖权限、适用场景及注意事项。 **TRUNCATE TABLE 的语法和参数** `TRUNCATE TABLE` 命令的基本语法是: ```sql TRUNCATE TABLE ...
本文导读:删除表中的数据的方法有delete,truncate, 其中TRUNCATE TABLE用于删除表中的所有行,而不记录单个行删除操作。TRUNCATE TABLE 与没有 WHERE 子句的 DELETE 语句类似;但是,TRUNCATE TABLE 速度更快,使用...
第二种方法是创建一个存储过程`P_TRUNCATE`,并在其中执行`TRUNCATE TABLE`语句。这允许我们限制用户仅能通过存储过程执行清理操作,从而降低误操作的风险。以下是如何创建并授予执行存储过程权限的步骤: ```sql ...
在日常数据库管理中,理解并熟练使用 `TRUNCATE TABLE` 可以极大地提高工作效率,特别是在处理大数据量的表时。它是一个强大的工具,能够帮助你迅速地清空表,以便重新加载数据或进行其他维护任务。同时,考虑到其不...
EXECUTE IMMEDIATE 'TRUNCATE TABLE SYS.AUD$'; END; ``` - **授予执行权限**:接着,向需要执行该操作的用户(本例中为`DB_USER`)授予此存储过程的执行权限。 ```sql GRANT EXECUTE ON proc_truncate_aud TO...
实际线上的场景比较复杂,当时涉及了truncate, delete 两个操作,经确认丢数据差不多7万多行,等停下来时,差不多又有共计1万多行数据写入。 这里为了简单说明,只拿弄一个简单的业务场景举例。 测试环境: Percona-...
ecshop是一个开源的购物系统,但是为了实现很多功能市面上的源码,都是有演示数据的,下面提供一个简单的方法,一键清空体验数据,而不用删除商品了 TRUNCATE TABLE `ecs_admin_log`; TRUNCATE TABLE `ecs_article`;...
在 SQLite 数据库中,虽然没有直接的 `TRUNCATE TABLE` 命令来清空一个表的所有数据,但是可以通过组合使用 `DELETE` 和 `VACUUM` 命令来达到相同的效果。这里我们将深入探讨如何在 SQLite 中实现类似 `TRUNCATE ...
与使用`DELETE FROM`语句相比,`TRUNCATE TABLE`在执行效率上更高,因为它不涉及记录删除日志的操作,而是直接释放已分配的空间。 #### 四、总结 通过上述介绍可以看出,在ZenCart的二次开发过程中,合理使用SQL...
在数据库管理中,TRUNCATE 和 DELETE 是两种用于删除数据的方法,它们各有其特定的适用场景和优缺点。本文将详细对比分析这两种操作的区别。 首先,TRUNCATE TABLE 是一种快速删除表中所有数据的方式,它并不记录每...
然而,由于设计原因,使用`TRUNCATE TABLE`后,表不允许立即更新,需等待下次Memtable冻结完成后才能恢复写入。此外,用户需要手动触发小版本或大版本合并(通过`ups_admin`工具)来完成真正的TRUNCATE操作。 性能...
- 可以重用存储空间,即如果执行`TRUNCATE TABLE table_name REUSE STORAGE`,则可以释放未使用的空间并允许再次使用。 2. **`DELETE`**: - **定义**:`DELETE`是一种DML(数据操纵语言)命令,用于删除表中的...
本文将详细讨论两种常见的删除方式:`DELETE FROM` 和 `TRUNCATE TABLE`,并分析它们各自的特点和适用场景,以便于选择最适合的数据清理方法。 1. 自动编号列的影响 当涉及带有自动编号(如 AUTO_INCREMENT 或 ...
6. **数据泵导出导入(Data Pump Export/Import)**:在Oracle中,你可以使用Data Pump工具导出部分数据,然后再导入,以覆盖被TRUNCATE的表。这种方法适用于部分数据丢失的情况。 7. **用户自定义脚本**:"FY_...
select CONCAT('truncate TABLE ',table_schema,'.',TABLE_NAME, ';') from INFORMATION_SCHEMA.TABLES where table_schema in ('数据库1','数据库2'); 以名为dbname的数据库为例,执行select语句: mysql> ...
在Oracle数据库中,`TRUNCATE TABLE`命令用于删除表中的所有数据,但它与`DELETE`语句有所不同。`TRUNCATE`操作是DDL(Data Definition Language)的一部分,而`DELETE`是DML(Data Manipulation Language)。由于`...