你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

删除实体 (Azure 存储)

Delete Entity 操作删除表中的现有实体。

请求

可以按如下所示构造 Delete Entity 请求。 建议使用 HTTPS。 将 myaccount 替换为存储帐户的名称,将 mytable 替换为表的名称,将 myPartitionKeymyRowKey 替换为标识要删除的实体的分区键和行键的名称。

方法 请求 URI HTTP 版本
DELETE https://myaccount.table.core.windows.net/mytable(PartitionKey='myPartitionKey', RowKey='myRowKey') HTTP/1.1

要更新的实体的地址可能在请求 URI 上采用多种形式。 有关更多详细信息,请参阅 OData 协议

模拟存储服务 URI

对模拟存储服务发出请求时,请将模拟器主机名和 Azure 表存储端口指定为 127.0.0.1:10002,后跟模拟的存储帐户名称。

方法 请求 URI HTTP 版本
DELETE http://127.0.0.1:10002/devstoreaccount1/myentity(PartitionKey='myPartitionKey', RowKey='myRowKey') HTTP/1.1

存储模拟器中的表存储在多个方面与 Azure 服务不同。 有关详细信息,请参阅 存储模拟器与 Azure 存储服务之间的差异

URI 参数

可以在请求 URI 上指定以下附加参数。

参数 说明
timeout 可选。 超时参数以秒表示。 有关详细信息,请参阅 设置表存储操作的超时

请求标头

下表介绍必需的和可选的请求标头。

请求标头 说明
Authorization 必需。 指定授权方案、帐户名称和签名。 有关详细信息,请参阅授权对 Azure 存储的请求
Datex-ms-date 必需。 指定请求的协调世界时 (UTC)。 有关详细信息,请参阅授权对 Azure 存储的请求
x-ms-version 可选。 指定用于此请求的操作的版本。 有关详细信息,请参阅 Azure 存储服务的版本控制
If-Match 必需。 客户端可以为请求中的 实体指定 ETag ,以便与服务维护的 进行比较 ETag ,以实现乐观并发。 仅当客户端发送的 与服务器维护的值匹配时 ETag ,删除操作才会继续。 此匹配表示自客户端检索实体以来尚未修改该实体。

要强制无条件删除,请将 If-Match 设置为通配符 (*)。
x-ms-client-request-id 可选。 提供客户端生成的不透明值,其中包含 1-kibite (KiB) 配置日志记录时记录在日志中的字符限制。 强烈建议使用此标头将客户端活动与服务器接收的请求相关联。 有关详细信息,请参阅 监视 Azure 表存储

请求正文

无。

响应

响应包括 HTTP 状态代码和一组响应标头。

状态代码

成功的操作将返回状态代码 204(无内容)。 有关状态代码的信息,请参阅 状态和错误代码表存储错误代码

响应头

响应包含以下标头。 响应还可以包含其他标准 HTTP 标头。 所有标准标头都符合 HTTP/1.1 协议规范

响应标头 说明
x-ms-request-id 此标头唯一标识发出的请求,可用于对请求进行故障排除。 有关详细信息,请参阅 API 操作故障排除
x-ms-version 指示用于运行请求的表存储的版本。 针对 2009-09-19 和更高版本发出的请求将返回此标头。
Date 指示启动响应的时间的 UTC 日期/时间值。 服务生成此值。
x-ms-client-request-id 可以使用此标头对请求和相应的响应进行故障排除。 如果请求中存在,则此标头的值等于 标头的值 x-ms-client-request-id 。 该值最多为 1,024 个可见 ASCII 字符。 x-ms-client-request-id如果请求中不存在标头,则响应中不会显示此标头。

响应正文

无。

授权

帐户所有者可以执行此操作。 此外,具有共享访问签名且有权执行此操作的任何人都可以执行此操作。

注解

成功删除实体后,该实体会立即标记为要删除,并且不再可访问。

实体的 ETag 为删除操作提供默认的乐观并发。 该值 ETag 是不透明的,不应读取或依赖该值。 在删除操作发生之前,表存储会验证实体的当前 ETag 值是否与 ETag 标头中的 If-Match 删除请求中包含的值相同。 如果值相同,表存储将确定实体自检索以来尚未修改,并且删除操作继续进行。

如果实体的 ETag 与删除请求中指定的不同,则删除操作将失败,状态代码为 412 (前置条件失败) 。 此错误表明在检索实体后在服务器上更改了该实体。 要解决该错误,请重新检索实体并重新发出请求。

要强制执行无条件删除操作,请将请求中 If-Match 标头的值设置为通配符 (*)。 将此值传递给操作会替代默认的乐观并发,并忽略值中的任何 ETag 不匹配。

如果请求中缺少 If-Match 标头,服务将返回状态代码 400(错误的请求)。 在其他方面格式不正确的请求也可能返回代码 400。 有关详细信息,请参阅 表存储错误代码

可以授权和发送 HTTP DELETE 请求的任何应用程序都可以删除实体。 有关使用 HTTP DELETE构造查询的详细信息,请参阅 添加、修改和删除实体

有关执行批量删除操作的信息,请参阅 执行实体组事务

另请参阅

授权对 Azure 存储的请求
设置 OData 数据服务版本标头
状态和错误代码
表存储错误代码