更新时间:2022-02-22 GMT+08:00
指定筛选条件删除分区
功能描述
指定筛选条件删除分区表的一个或多个分区。
语法格式
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_$]*$。如果特殊字符需要使用单引号('')包围起来。 |
partition_filtercondition |
分区筛选条件。具体可以为以下格式:
|
注意事项
- 所要删除分区的表必须是已经存在的表,否则会出错。
- 所要删除的分区必须是已经存在的,否则会出错,可通过语句中添加IF EXISTS避免该错误。
示例
将分区表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');
|
父主题: 分区表相关