DeleteItem - Amazon DynamoDB
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

DeleteItem

重要

This section refers to API version 2011-12-05, which is deprecated and should not be used for new applications.

有关当前低级别 API 的文档,请参阅 Amazon DynamoDB API Reference

Description

按主键删除表中的单个项目。您可以执行有条件删除操作,以删除存在的项目或项目具有预期的属性值。

注意

如果您指定 DeleteItem 而没有属性或值,则将删除项目的所有属性。

除非您指定条件,否则 DeleteItem 是一个静态操作;在同一项目或属性上多次运行它 会导致错误响应。

有条件删除仅适用于在满足特定条件时删除项目和属性的情况。如果满足条件,DynamoDB 将执行删除操作。否则,不会删除项目。

您可以对每个操作的一个属性执行预期的条件检查。

Requests

Syntax

// This header is abbreviated. // For a sample of a complete header, see DynamoDB 低级 API. POST / HTTP/1.1 x-amz-target: DynamoDB_20111205.DeleteItem content-type: application/x-amz-json-1.0 {"TableName":"Table1", "Key": {"HashKeyElement":{"S":"AttributeValue1"},"RangeKeyElement":{"N":"AttributeValue2"}}, "Expected":{"AttributeName3":{"Value":{"S":"AttributeValue3"}}}, "ReturnValues":"ALL_OLD"} }
名称 描述 必需
TableName

包含要删除的项目的表的名称。

类型: 字符串

Key

定义项目的主键。有关主键的更多信息,请参阅主键

类型: 映射到其值,HashKeyElement 映射到其值。RangeKeyElement

Expected

指定用于有条件删除的属性。参数允许您提供属性名称,以及 Expected 是否应在删除属性之前检查该属性是否具有特定值。DynamoDB

类型: 属性名称的映射。

Expected:AttributeName

条件放置的属性的名称。

类型: 字符串

Expected:AttributeName: ExpectedAttributeValue 使用此参数可指定属性名称/值对是否已存在值。

如果项目没有“Color”属性,则以下 JSON 表示法将删除该项目:

"Expected" : {"Color":{"Exists":false}}

以下 JSON 表示法检查名为“Color”的属性在删除项目之前是否具有“Yellow”的现有值:

"Expected" : {"Color":{"Exists":true},{"Value":{"S":"Yellow"}}}

默认情况下,如果您使用 Expected 参数并提供 Value,则 DynamoDB 假定该属性存在并具有要替换的当前值。因此,您不必指定 {"Exists":true},因为它是隐含的。您可以将请求缩短到:

"Expected" : {"Color":{"Value":{"S":"Yellow"}}}
注意

如果您指定 {"Exists":true} 而没有要检查的属性值,则 DynamoDB 将返回错误。

ReturnValues

如果要在删除属性名称/值对之前获取属性名称/值对,请使用此参数。可能的参数值为 NONE(默认值)或 ALL_OLD。 如果指定 ALL_OLD,则返回旧项目的内容。如果未提供此参数或该参数为 NONE,则不会返回任何内容。

类型: 字符串

Responses

Syntax

HTTP/1.1 200 OK x-amzn-RequestId: CSOC7TJPLR0OOKIRLGOHVAICUFVV4KQNSO5AEMVJF66Q9ASUAAJG content-type: application/x-amz-json-1.0 content-length: 353 Date: Tue, 12 Jul 2011 21:31:03 GMT {"Attributes": {"AttributeName3":{"SS":["AttributeValue3","AttributeValue4","AttributeValue5"]}, "AttributeName2":{"S":"AttributeValue2"}, "AttributeName1":{"N":"AttributeValue1"} }, "ConsumedCapacityUnits":1 }
名称 描述
Attributes

如果在请求中将 ReturnValues 参数作为 ALL_OLD 提供,则 DynamoDB 返回属性名称/值对的数组(实际上是已删除的项目)。否则,响应将包含空集。

类型: 属性名称/值对的数组。

ConsumedCapacityUnits

操作占用的写入容量单位数。此值显示应用于预置吞吐量的数量。对不存在的项目发出的删除请求将占用 1 个写入容量单位。有关更多信息,请参阅 管理 DynamoDB 预置容量表的设置

类型: 数字

特殊错误

错误 描述
ConditionalCheckFailedException 条件检查失败。找不到预期的属性值。

Examples

示例请求

// This header is abbreviated. // For a sample of a complete header, see DynamoDB 低级 API. POST / HTTP/1.1 x-amz-target: DynamoDB_20111205.DeleteItem content-type: application/x-amz-json-1.0 {"TableName":"comp-table", "Key": {"HashKeyElement":{"S":"Mingus"},"RangeKeyElement":{"N":"200"}}, "Expected": {"status":{"Value":{"S":"shopping"}}}, "ReturnValues":"ALL_OLD" }

示例响应

HTTP/1.1 200 OK x-amzn-RequestId: U9809LI6BBFJA5N2R0TB0P017JVV4KQNSO5AEMVJF66Q9ASUAAJG content-type: application/x-amz-json-1.0 content-length: 353 Date: Tue, 12 Jul 2011 22:31:23 GMT {"Attributes": {"friends":{"SS":["Dooley","Ben","Daisy"]}, "status":{"S":"shopping"}, "time":{"N":"200"}, "user":{"S":"Mingus"} }, "ConsumedCapacityUnits":1 }