.delete table records - 软删除命令

若要在没有系统保证同时删除包含这些记录的存储项目的情况下软删除单个记录,请使用以下命令。 该命令会将记录标记为已删除,但不一定从存储项目中删除数据。 有关详细信息,请参阅软删除

若要删除单个记录并由系统保证同时删除包含这些记录的存储项目,请使用数据清除

语法

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

详细了解语法约定

参数

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

注意

以下限制适用于谓词:

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

支持的属性

名称 Type 描述
whatif bool 如果为 true,则返回每个数据库分片中将删除的记录数,而不实际删除任何记录。 默认为 false

返回

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

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

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

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

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

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

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

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

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

语法 - 具体化视图

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

详细了解语法约定

参数 - 具体化视图

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

注意

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

支持的属性 - 具体化视图

名称 Type 描述
whatif bool 如果为 true,则返回每个数据库分片中将删除的记录数,而不实际删除任何记录。 默认为 false

示例 - 具体化视图

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

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

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

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

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