

# ALTER TABLE DROP PARTITION
<a name="alter-table-drop-partition"></a>

为命名的表删除一个或多个指定的分区。

## 摘要
<a name="synopsis"></a>

```
ALTER TABLE table_name DROP [IF EXISTS] PARTITION (partition_spec) [, PARTITION (partition_spec)]
```

## 参数
<a name="alter-table-drop-partition-parameters"></a>

**[IF EXISTS]**  
如果指定的分区不存在，则会隐藏错误消息。

**PARTITION (partition\$1spec)**  
每个 `partition_spec` 以形式 `partition_col_name = partition_col_value [,...]` 指定列名称/值组合。

## 示例
<a name="alter-table-drop-partition-examples"></a>

```
ALTER TABLE orders 
DROP PARTITION (dt = '2014-05-14', country = 'IN');
```

```
ALTER TABLE orders 
DROP PARTITION (dt = '2014-05-14', country = 'IN'), PARTITION (dt = '2014-05-15', country = 'IN');
```

## 备注
<a name="alter-table-drop-partition-notes"></a>

`ALTER TABLE DROP PARTITION` 语句不提供一次性删除所有分区的单一语法，也不支持用于指定要删除的分区范围的筛选条件。

作为解决方法，您可以在脚本中使用 Amazon Glue API [GetPartitions](https://docs.amazonaws.cn/glue/latest/dg/aws-glue-api-catalog-partitions.html#aws-glue-api-catalog-partitions-GetPartitions) 和 [BatchDeletePartition](https://docs.amazonaws.cn/glue/latest/dg/aws-glue-api-catalog-partitions.html#aws-glue-api-catalog-partitions-BatchDeletePartition) 操作。`GetPartitions` 操作支持复杂的筛选条件表达式，就像 SQL `WHERE` 表达式中的筛选条件表达式一样。使用 `GetPartitions` 创建要删除的分区的筛选列表后，您可以使用 `BatchDeletePartition` 操作批量删除 25 个分区。