更新时间:2022-12-07 GMT+08:00
删除分区
功能描述
删除分区表的一个或多个分区。
注意事项
- 所要删除分区的表必须是已经存在的表,否则会出错。
- 所要删除的分区必须是已经存在的,否则会出错,可通过语句中添加IF EXISTS避免该错误。
语法格式
1 2 3 |
ALTER TABLE [db_name.]table_name DROP [IF EXISTS] PARTITION partition_spec1[,PARTITION partition_spec2,...]; |
关键字
- DROP:删除表分区。
- IF EXISTS:所要删除的分区必须是已经存在的,否则会出错。
- PARTITION:分区。
参数说明
参数 |
描述 |
---|---|
db_name |
Database名称,由字母、数字和下划线(_)组成。不能是纯数字,且不能以下划线开头。 |
table_name |
Database中的表名,由字母、数字和下划线(_)组成。不能是纯数字,且不能以下划线开头。匹配规则为:^(?!_)(?![0-9]+$)[A-Za-z0-9_$]*$。如果特殊字符需要使用单引号('')包围起来。 |
partition_specs |
分区信息,key=value形式,key为分区字段,value为分区值。若分区字段为多个字段,可以不包含所有的字段,会删除匹配上的所有分区。“partition_specs”中的参数默认带有“( )”,例如:PARTITION (dt='2009-09-09',city='xxx')。 |
示例
将分区表student的分区dt = '2008-08-08', city = 'xxx'删除。
1 2 3 |
ALTER TABLE student DROP PARTITION (dt = '2008-08-08', city = 'xxx'); |
父主题: 分区表相关