更新时间:2022-02-22 GMT+08:00

删除分区

功能描述

删除分区表的一个或多个分区。

语法格式

1
2
3
ALTER TABLE [db_name.]table_name
  DROP [IF EXISTS]
  PARTITION partition_spec1[,PARTITION partition_spec2,...];

关键字

  • DROP:删除表分区。
  • IF EXISTS:所要删除的分区必须是已经存在的,否则会出错。
  • PARTITION:分区。

参数说明

表1 参数描述

参数

描述

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='Shanghai')

注意事项

  • 所要删除分区的表必须是已经存在的表,否则会出错。
  • 所要删除的分区必须是已经存在的,否则会出错,可通过语句中添加IF EXISTS避免该错误。

示例

将分区表student的分区dt = '2008-08-08', city = 'Hangzhou'删除。

1
2
3
ALTER TABLE student
  DROP
  PARTITION (dt = '2008-08-08', city = 'Hangzhou');