跳到主要内容

Truncate 操作

该语句用于清空指定表和分区的数据。

语法

TRUNCATE TABLE [db.]tbl [PARTITION(p1, p2, ...)] [FORCE];
  • 该语句仅清空表或分区中的数据,但保留表或分区本身。
  • 与 DELETE 不同,该语句只能整体清空指定表或分区,不支持附加过滤条件。
  • 与 DELETE 不同,TRUNCATE 清空数据不会影响查询性能。
  • 该操作删除的数据可通过 RECOVER 语句在一定时间内恢复。详见 RECOVER 语句说明。若执行命令时使用 FORCE,数据将被直接删除且不可恢复,通常不建议使用。
  • 使用该命令时,表状态必须为 NORMAL,即正在进行 SCHEMA CHANGE 的表不能执行 TRUNCATE。
  • 该命令可能会导致正在进行的导入任务失败。

示例

1. 清空 example_db 下的表 tbl

TRUNCATE TABLE example_db.tbl;

2. 清空表 tbl 的 p1 和 p2 分区

TRUNCATE TABLE tbl PARTITION(p1, p2);

3. 使用 FORCE 清空 example_db 下的表 tbl

TRUNCATE TABLE example_db.tbl FORCE;