Amazon DynamoDB
开发人员指南 (API Version 2012-08-10)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。点 击 Getting Started with Amazon AWS to see specific differences applicable to the China (Beijing) Region.

DeleteItem

重要

本节引用 API 版本 2011-12-05,此版本已被弃用且不应该用于新应用程序。

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

说明

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

注意

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

除非指定条件,否则 DeleteItem 是幂等操作;对同一项目或属性多次执行此操作不会 生成错误响应。

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

可以每个操作一个属性,执行所需的条件检查。

请求

语法

Copy
// 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 使用此参数可以指定属性名称/值对的值是否已存在。

以下 JSON 表示法在该项目的“Color”属性不存在时删除该项目:

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

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

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

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

Copy
"Expected" : {"Color":{"Value":{"S":"Yellow"}}}

注意

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

ReturnValues

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

类型:字符串

响应

语法

Copy
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 个写入容量单位。有关更多信息,请参阅 读取和写入的吞吐量设置

类型:数字

特殊错误

错误 说明
ConditionalCheckFailedException 条件检查失败。未找到所需的属性值。

示例

示例请求

Copy
// 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" }

示例响应

Copy
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 }