DeleteItem - Amazon DynamoDB

DeleteItem

重要

このセクションでは、API バージョン 2011-12-05 について言及しています。これは非推奨なので、新しいアプリケーションに使用しないでください。

現在の低レベルの API に関するドキュメントについては、Amazon DynamoDB API リファレンスを参照してください。

説明

プライマリキーを使用してテーブルから 1 つの項目を削除します。項目が存在する場合、または予期される属性値が項目にある場合は、項目を削除する条件付き削除オペレーションを実行できます。

注記

属性または値なしで DeleteItem を指定すると、項目のすべての属性が削除されます。

条件を指定した場合を除き、DeleteItem は、べき等性の操作です。同じ項目または属性に対して複数回実行してもエラーレスポンスが返されません

条件付き削除は、特定の条件が満たされた場合にのみ項目と属性を削除する場合に便利です。条件が満たされると、DynamoDB は削除を実行します。それ以外の場合、項目は削除されません。

1 度のオペレーションにつき 1 つの属性に対して、予期される条件チェックを実行できます。

リクエスト

構文

// 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」属性が存在しない項目が削除されます。

"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 の場合、何も返されません。

型: 文字列

いいえ

レスポンス

構文

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 条件チェックに失敗しました。予期された属性値が見つかりませんでした。

リクエスト例

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