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