基于湖库一体架构,统一管理结构化、半结构化与非结构化等多模态数据,一个系统承载事务处理、实时分析与 AI 工作负载。
TRUNCATE TABLE
更新时间:2023-08-16 14:15:42
描述
该语句用于完全清空指定表,但是保留表结构,包括表中定义的分区信息。从逻辑上说,该语句与用于删除所有行的 DELETE FROM 语句相同。
执行 TRUNCATE 语句,必须具有表的删除(DROP)权限,如果不是用户自己的表则需要具有 DROP ANY TABLE 权限。
TRUNCATE TABLE 语句与 DELETE FROM 语句有以下不同:
TRUNCATE操作删除并重新创建表,这比逐行删除要快得多,特别是对于大表。TRUNCATE TABLE语句执行结果显示影响行数始终显示为0行。使用
TRUNCATE TABLE语句,表管理程序不记得最后被使用的AUTO_INCREMENT值,但是会从头开始计数。TRUNCATE语句不能在进行事务处理和表锁定的过程中进行,如果使用将会报错。只要表定义文件是合法的,则可以使用
TRUNCATE TABLE把表重新创建为一个空表,即使数据或索引文件已经被破坏。
语法
TRUNCATE [TABLE] [schema.]table_name;
参数解释
| 参数 | 描述 |
|---|---|
| schema. | 指定 Schema。如果省略 schema,则默认该表在当前 Schema 中。 |
| table_name | 指定表名。 |
示例
完全清空表 tb1。
obclient> TRUNCATE TABLE tbl1;
Query OK, 0 rows affected