更新时间:2022-12-07 GMT+08:00
指定筛选条件删除分区(只支持OBS表)
功能描述
指定筛选条件删除分区表的一个或多个分区。
注意事项
- 该命令仅支持操作OBS表,不支持对DLI表进行操作。
- 所要删除分区的表必须是已经存在的表,否则会出错。
- 所要删除的分区必须是已经存在的,否则会出错,可通过语句中添加IF EXISTS避免该错误。
语法格式
1 2 3 |
ALTER TABLE [db_name.]table_name DROP [IF EXISTS] PARTITIONS partition_filtercondition; |
关键字
- DROP:删除表分区。
- IF EXISTS:所要删除的分区必须是已经存在的,否则会出错。
- PARTITIONS:分区。
参数说明
参数 |
描述 |
---|---|
db_name |
Database名称,由字母、数字和下划线(_)组成。不能是纯数字,且不能以下划线开头。 |
table_name |
Database中的表名,由字母、数字和下划线(_)组成。不能是纯数字,且不能以下划线开头。匹配规则为:^(?!_)(?![0-9]+$)[A-Za-z0-9_$]*$。如果特殊字符需要使用单引号('')包围起来。 该命令仅支持操作OBS表,不支持对DLI表进行操作。 |
partition_filtercondition |
分区筛选条件。具体可以为以下格式:
|
示例
将分区表student的分区dt,按照各种筛选过滤条件删除。
1 2 3 4 5 6 7 8 |
alter table student drop partitions(start_date < '201911'); alter table student drop partitions(start_date >= '202007'); alter table student drop partitions(start_date BETWEEN '202001' AND '202007'); alter table student drop partitions(start_date < '201912' OR start_date >= '202006'); alter table student drop partitions(start_date > '201912' AND start_date <= '202004'); alter table student drop partitions(start_date != '202007'); alter table student drop partitions(start_date <> '202007'); alter table student drop partitions(start_date <> '202007'), partitions(start_date < '201912'); |
父主题: 分区表相关