.delete table records - 软删除命令

使用 “版本 ”下拉列表切换服务。 了解有关导航的详细信息
适用于:✅ Azure Data Explorer

若要在不保证删除包含这些记录的storage artifacts的情况下软删除单个记录,请使用以下命令。 此命令将记录标记为已删除,但不一定从storage artifacts中删除数据。 有关详细信息,请参阅软删除

若要使用系统保证删除包含这些记录的storage artifacts也删除单个记录,请参阅 Data purge

语法

.delete [async] tableTableName records [with( propertyName=propertyValue [, ...])] <|Predicate

详细了解语法约定

参数

客户 类型 必需 说明
async string 如果指定了此项,则指示此命令以异步模式运行。
TableName string ✔️ 要从中删除记录的表的名称。
propertyName、propertyValue string 键值属性对的逗号分隔列表。 请参阅支持的属性
Predicate string ✔️ 返回要删除的记录的谓词,指定为查询。 查看注释。

注意

以下限制适用于谓词:

  • 谓词应至少有一个 where 运算符。
  • 谓词只能使用以下运算符:extendwhereproject
  • 谓词不能使用 externaldata

支持的属性

客户 类型 说明
whatif bool 如果为 true,则返回每个数据库分片中将删除的记录数,而不实际删除任何记录。 默认为 false

返回

命令的输出包含有关哪些区已被替换的信息。

示例:删除给定用户的记录

若要删除包含给定用户的数据的所有记录,请运行以下命令:

.delete table MyTable records <| MyTable | where UserId == 'X'

示例:检查将从表中删除的记录数

如要确定操作将删除的记录数而不实际删除这些记录,请在 模式下运行命令时检查 whatif 列中的值:

.delete table MyTable records with (whatif=true) <| MyTable | where UserId == 'X'

.delete materialized-view records - 软删除命令

对具体化视图执行软删除时,同样的概念和限制也适用。

语法 - 具体化视图

.delete [async] materialized-viewMaterializedViewName records [with( propertyName=propertyValue [, ...])] <|Predicate

详细了解语法约定

参数 - 具体化视图

客户 类型 必需 说明
async string 如果指定了此项,则指示此命令以异步模式运行。
MaterializedViewName string ✔️ 要从中删除记录的具体化视图的名称。
propertyName、propertyValue string 键值属性对的逗号分隔列表。 请参阅支持的属性
Predicate string ✔️ 返回要删除的记录的谓词。 指定为查询。

注意

对表提到的对 Predicate 的限制也同样适用于此处。 如果软删除与在后台运行的具体化进程发生冲突,可能会失败。 在这种情况下,重试操作会有所帮助。 若要避免冲突,可以在执行软删除之前禁用具体化视图,然后在操作完成后重新启用。 Predicate 中不允许使用函数 materialized_view()

支持的属性 - 具体化视图

客户 类型 说明
whatif bool 如果为 true,则返回每个数据库分片中将删除的记录数,而不实际删除任何记录。 默认为 false

示例 - 具体化视图

若要删除包含给定用户的数据的所有具体化视图记录,请运行以下命令:

.delete materialized-view MyMaterializedView records <| MyMaterializedView | where UserId == 'X'

示例:检查将从具体化视图中删除的记录数

如要确定操作将删除的记录数而不实际删除这些记录,请在 模式下运行命令时检查 whatif 列中的值:

.delete materialized-view MyMaterializedView records with (whatif=true) <| MyMaterializedView | where UserId == 'X'