PutItem - Amazon-DynamoDB

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

PutItem

Wichtig

Dieser Abschnitt bezieht sich auf die veraltete API-Version 2011-12-05, die nicht für neue Anwendungen verwendet werden sollte.

Eine Dokumentation zur aktuellen Low-Level-API finden Sie in der Amazon DynamoDB-API-Referenz.

Beschreibung

Erstellt ein neues Element oder ersetzt ein altes durch ein neues Element (einschließlich aller Attribute). Wenn ein Element in der angegebenen Tabelle mit demselben Primärschlüssel bereits vorhanden ist, wird das vorhandene vollständig durch das neue Element ersetzt. Sie können eine bedingte PUT-Transaktion ausführen (ein neues Element einfügen, wenn keins mit dem angegebenen Primärschlüssel vorhanden ist) oder ein vorhandenes Element ersetzen, wenn es bestimmte Attributwerte besitzt.

Attributwerte dürfen nicht Null sein, Zeichenketten- und Binärtypattribute müssen Längen haben, die größer als Null sind, und festgelegte Typattribute dürfen nicht leer sein. Anfragen mit leeren Werten werden mit einer ValidationException abgelehnt.

Anmerkung

Um sicherzustellen, dass ein vorhandenes nicht durch ein neues Element ersetzt wird, verwenden Sie eine bedingte PUT-Operation, wobei Exists für das bzw. die Primärschlüsselattribute auf false festgelegt wird.

Weitere Informationen zur Verwendung von PutItem finden Sie unter Arbeiten mit Elementen und Attributen in DynamoDB.

Anforderungen

Syntax

// This header is abbreviated. // For a sample of a complete header, see DynamoDB auf niedriger Ebene 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"}
Name Beschreibung Erforderlich
TableName

Der Name der Tabelle, die das Element enthält.

Typ: Zeichenfolge

Ja
Item

Eine Übersicht über die Attribute für das Element, die die Primärschlüsselwerte zur Definition des Elements enthalten muss. Andere Attribut-Namen-Wert-Paare können für das Element bereitgestellt werden. Weitere Informationen zu Primärschlüsseln finden Sie unter Primärschlüssel.

Typ: Zuweisung von Attributnamen und zu Attributwerten.

Ja
Expected

Gibt ein Attribut für eine bedingte PUT-Operation an. Der Parameter Expected erlaubt es Ihnen, einen Attributnamen anzugeben und festzulegen, ob DynamoDB überprüfen soll, ob der Attributwert bereits vorhanden ist bzw. ob der Attributwert vorhanden ist und über einen bestimmten Wert verfügt, bevor er geändert wird.

Typ: Zuweisung eines Attributnamens zu einem Attributwert und ob er vorhanden ist.

Nein
Expected:AttributeName

Der Name des Attributs für die bedingte Put-Operation.

Typ: Zeichenfolge

Nein
Expected:AttributeName: ExpectedAttributeValue Verwenden Sie diesen Parameter, um anzugeben, ob ein Wert für das Attributname-Wert-Paar bereits vorhanden ist oder nicht.

Die folgende JSON-Notation ersetzt das Element, wenn das Attribut "Farbe" für dieses Element noch nicht vorhanden ist:

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

Die folgende JSON-Notation prüft, ob das Attribut mit dem Namen "Farbe" über einen vorhandenen "Gelb"-Wert verfügt, bevor das Element ersetzt wird:

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

Wenn Sie den Parameter Expected verwenden und einen Value angeben, geht DynamoDB standardmäßig davon aus, dass das Attribut vorhanden ist und einen zu ersetzenden aktuellen Wert hat. Sie müssen {"Exists":true} demnach nicht angeben, weil er enthalten ist. Sie können die Anforderung verkürzen, um:

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

Wenn Sie {"Exists":true} ohne einen zu prüfenden Attributwert angeben, gibt DynamoDB einen Fehler zurück.

Nein
ReturnValues

Verwenden Sie diesen Parameter, wenn Sie die Attribut-Namen-Wert-Paare erhalten möchten, bevor sie mit der PutItem-Anforderung aktualisiert wurden. Mögliche Parameterwerte sind NONE (Standard) oder ALL_OLD. Wenn ALL_OLD angegeben ist und ein Attribut-Namen-Wert-Paar durch PutItem überschrieben wurde, wird der Inhalt des alten Elements zurückgegeben. Wenn dieser Parameter nicht angegeben wird oder NONE ist, wird nichts zurückgegeben.

Typ: Zeichenfolge

Nein

Antworten

Syntax

In dem folgenden Syntax-Beispiel wird davon ausgegangen, dass die Anforderung für den Parameter ReturnValues ALL_OLD angegeben hat; andernfalls beinhaltet die Antwort nur das ConsumedCapacityUnits-Element.

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 }
Name Beschreibung
Attributes

Attributwerte vor der PUT-Operation, aber nur wenn der Parameter ReturnValues in der Anforderung mit ALL_OLD angegeben wird.

Typ: Zuordnung von Attribut-Namen-Wert-Paare.

ConsumedCapacityUnits

Die Anzahl der Schreibkapazitätseinheiten, die von dem Vorgang verbraucht werden. Dieser Wert zeigt die Anzahl, die für Ihren bereitgestellten Durchsatz gültig ist. Weitere Informationen finden Sie unter Bereitgestellter Kapazitätsmodus von DynamoDB.

Typ: Zahl

Spezielle Fehler

Fehler Beschreibung
ConditionalCheckFailedException Bedingte Prüfung fehlgeschlagen. Ein erwarteter Attributwert wurde nicht gefunden.
ResourceNotFoundException Das angegebene Element oder Attribut wurde nicht gefunden.

Beispiele

Beispiele für die Verwendung des AWS SDK finden Sie unterArbeiten mit Elementen und Attributen in DynamoDB.

Beispielanforderung

// This header is abbreviated. For a sample of a complete header, see DynamoDB auf niedriger Ebene 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" }

Beispielantwort

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 }