本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
PutItem
重要
本節涉及不該再用於新應用程式的已棄用 API 版本 2011-12-05。
如需目前低階 API 的文件,請參閱Amazon DynamoDB API 參考。
描述
建立新項目,或以新項目取代舊項目 (包括全部屬性)。如果具有相同主索引鍵的指定資料表中已存在某項目,則新項目會完全取代現有項目。您可以執行條件式放置 (如果具有所指定主索引鍵的項目不存在,則插入新項目),或者在現有項目具有某些屬性值時取代項目。
屬性值不得為 Null;字串和二進位類型屬性的長度必須大於零;集合類型屬性不可為空白。具有空值的請求會遭到拒絕,並出現 ValidationException
。
注意
若要確保新項目不會取代現有項目,請使用條件式放置操作,針對主索引鍵屬性或屬性將 Exists
設定為 false
。
如需有關使用 PutItem
的詳細資訊,請參閱 使用項目和屬性。
請求
語法
// This header is abbreviated. // For a sample of a complete header, see DynamoDB 低階 API. POST / HTTP/1.1 x-amz-target: DynamoDB_20111205.PutItem content-type: application/x-amz-json-1.0 {"TableName":"Table1", "Item":{ "AttributeName1":{"S":"AttributeValue1"}, "AttributeName2":{"N":"AttributeValue2"}, "AttributeName5":{"B":"dmFsdWU="} }, "Expected":{"AttributeName3":{"Value": {"S":"AttributeValue"}, "Exists":Boolean}}, "ReturnValues":"ReturnValuesConstant"}
名稱 | 描述 | 必要 |
---|---|---|
TableName
|
要包含項目的資料表名稱。 類型:字串 |
是 |
Item
|
項目屬性映射,且必須包含定義項目的主索引鍵值。可提供其他屬性名稱值組給項目。如需主索引鍵的詳細資訊,請參閱 主索引鍵。 類型:屬性值的屬性名稱映射。 |
是 |
Expected
|
指定條件式放置的屬性。 類型:屬性值的屬性名稱映射,以及映射是否存在。 |
否 |
Expected:AttributeName
|
條件式放置的屬性的名稱。 類型:字串 |
否 |
Expected:AttributeName: ExpectedAttributeValue |
使用此參數來指定屬性名稱值組的值是否已經存在。 如果該項目的 Color (顏色) 屬性尚未存在,則下列 JSON 符號會取代項目:
下列 JSON 符號會在取代項目之前檢查名為 Color (顏色) 的屬性是否具有現有值 Yellow (黃色):
根據預設,如果使用
注意如果指定 |
否 |
ReturnValues
|
如果想在以 類型:字串 |
否 |
回應
語法
下列語法範例假設請求指定 ALL_OLD
的 ReturnValues
參數,反之則回應只有 ConsumedCapacityUnits
元素。
HTTP/1.1 200 x-amzn-RequestId: 8966d095-71e9-11e0-a498-71d736f27375 content-type: application/x-amz-json-1.0 content-length: 85 {"Attributes": {"AttributeName3":{"S":"AttributeValue3"}, "AttributeName2":{"SS":"AttributeValue2"}, "AttributeName1":{"SS":"AttributeValue1"}, }, "ConsumedCapacityUnits":1 }
名稱 | 描述 |
---|---|
Attributes
|
執行放置操作之前的屬性值,但僅限於請求中指定 類型:屬性名稱值組映射。 |
ConsumedCapacityUnits |
操作所使用的寫入容量單位數目。此值顯示套用至佈建輸送量的數字。如需詳細資訊,請參閱 管理 DynamoDB 佈建容量資料表的設定。 類型:數字 |
特殊錯誤
錯誤 | 描述 |
---|---|
ConditionalCheckFailedException
|
條件式檢查失敗。找不到預期的屬性值。 |
ResourceNotFoundException
|
找不到指定的項目或屬性。 |
範例
如需使用 AWS 開發套件的範例,請參閱 使用項目和屬性。
請求範例
// This header is abbreviated. For a sample of a complete header, see DynamoDB 低階 API. POST / HTTP/1.1 x-amz-target: DynamoDB_20111205.PutItem content-type: application/x-amz-json-1.0 {"TableName":"comp5", "Item": {"time":{"N":"300"}, "feeling":{"S":"not surprised"}, "user":{"S":"Riley"} }, "Expected": {"feeling":{"Value":{"S":"surprised"},"Exists":true}} "ReturnValues":"ALL_OLD" }
回應範例
HTTP/1.1 200 x-amzn-RequestId: 8952fa74-71e9-11e0-a498-71d736f27375 content-type: application/x-amz-json-1.0 content-length: 84 {"Attributes": {"feeling":{"S":"surprised"}, "time":{"N":"300"}, "user":{"S":"Riley"}}, "ConsumedCapacityUnits":1 }