TRUNCATE TABLE
功能
TRUNCATE TABLE 命令用于快速删除表中的所有记录,但表结构及其属性将保持不变。与 DROP TABLE 命令不同,TRUNCATE TABLE 不会完全删除表,而仅删除表中的数据。
语法
必选参数
table_name:指定要清空数据的表名。
可选参数
IF EXISTS:如果指定的表不存在,则不报错并继续执行其他操作。
使用示例
-
清空名为
employees的表中的所有记录: -
清空表
employees,如果表不存在,则不报错:
TRUNCATE TABLE PARTITION
功能
TRUNCATE TABLE PARTITION 命令用于清空分区表中指定分区的数据。支持通过条件筛选方式清空分区数据。如果您希望一次性清空符合某个规则条件的一个或多个分区,可以使用表达式指定筛选条件,通过筛选条件匹配分区并批量清空分区数据。
语法
- 指定分区删除:
- 指定分区筛选条件:
参数说明
-
table_name:指定表的名字。 -
IF EXISTS:如果表不存在,加上此参数执行该命令则不会报错。 -
pt_spec:必填。待清空数据的分区。当有多个分区字段格式为(partition_col1 = partition_col_value1, partition_col2 = partition_col_value2, ...)。partition_col是分区字段,partition_col_value是分区值。分区字段不区分大小写,分区值区分大小写。支持指定多个分区值,使用逗号分隔。 -
partition_expression:可以包含以下几种形式:- 基于分区列的比较操作:
<partition_col>:分区表中的分区列名。<relational_operators>:关系运算符,如=、<、>、<=、>、<>。<partition_col_value>:与分区列进行比较的值。- 示例如下:
-
scalar函数是返回单个值的函数,用于将分区列的值转换为标量值。目前lakehouse支持的分区scalar函数包含时间函数、json函数、数学函数、加密函数、正则函数、字符串函数。 -
示例如下:
- 基于分区过滤器的复合条件:
-
<partition_filter>:可以是任何有效的分区过滤条件。 -
AND|OR:逻辑运算符,用于组合多个过滤条件。 -
示例如下:
- 基于分区过滤器的否定条件:
-
NOT:逻辑非运算符,用于否定一个过滤条件。 -
示例如下:
- 多个分区过滤器的列表:
- 允许您列出多个分区过滤条件,每个条件之间用逗号分隔。
使用示例
-
指定分区清空
-
使用过滤条件清空
sales表中满足分区条件year < 2024 AND quarter = 1的所有分区:
