> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-trino-dialect.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> ALTER TABLE ... DELETE 语句文档

# ALTER TABLE ... DELETE 语句

```sql theme={null}
ALTER TABLE [db.]table [ON CLUSTER cluster] DELETE WHERE filter_expr
```

删除与指定过滤 expression 匹配的数据。此操作通过 [变更](/zh/reference/statements/alter/index#mutations) 实现。

<Warning>
  `ALTER TABLE` 前缀表明这是一项重量级操作，不同于 OLTP 数据库中的类似查询。`ALTER TABLE ... DELETE` 会重写包含与过滤表达式匹配的行的每个数据分区片段，从而产生大量写入 I/O。请谨慎使用，因为它可能会影响 `SELECT` 性能。

  对于 `MergeTree` 表，建议考虑使用 [`DELETE FROM` 查询](/zh/reference/statements/delete)，它执行的是轻量级删除，通常会快得多。对于需要频繁删除或更正的工作负载，建议考虑使用 [`ReplacingMergeTree`](/zh/concepts/features/operations/update/replacing-merge-tree) 或 [`CollapsingMergeTree`](/zh/reference/engines/table-engines/mergetree-family/collapsingmergetree)。
</Warning>

`filter_expr` 必须是 `UInt8` 类型。该查询会删除表中此 expression 取非零值的行。

单个查询可以包含多个以逗号分隔的命令。

查询处理的同步性由 [mutations\_sync](/zh/reference/settings/session-settings/mutations#mutations_sync) 设置定义。默认情况下，它是异步的。

**另请参见**

* [变更](/zh/reference/statements/alter/index#mutations)
* [ALTER 查询的同步性](/zh/reference/statements/alter/index#synchronicity-of-alter-queries)
* [mutations\_sync](/zh/reference/settings/session-settings/mutations#mutations_sync) 设置

<div id="related-content">
  ## 相关内容
</div>

* 博客：[在 ClickHouse 中处理更新和删除操作](https://clickhouse.com/blog/handling-updates-and-deletes-in-clickhouse)
