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的所有分区:
联系我们
