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.
AttributeUpdates (Vermächtnis)
Anmerkung
Es wird empfohlen, nach Möglichkeit die neuen Ausdrucksparameter anstelle der alten Parameter zu verwenden. Weitere Informationen finden Sie unter Verwenden von Ausdrücken in DynamoDB. Spezifische Informationen zu dem neuen Parameter, der diesen ersetzt, finden Sie unter UpdateExpressionstattdessen verwenden..
In einer UpdateItem
-Operation enthält der ältere Bedingungsparameter AttributeUpdates
die Namen der zu ändernden Attribute, die für jedes Attribut auszuführende Aktion und den jeweils neuen Wert. Wenn Sie ein Attribut aktualisieren, bei dem es sich um ein Indexschlüsselattribut für Indexe dieser Tabelle handelt, muss der Attributtyp mit dem in der AttributesDefinition
der Tabellenbeschreibung definierten Indexschlüsseltyp übereinstimmen. Mit UpdateItem
können Sie Nicht-Schlüsselattribute aktualisieren.
Attributwerte dürfen nicht Null sein. Attribute vom Typ Zeichenfolge und Binärwert müssen Längen haben, die größer als Null sind. Attribute vom Typ Satz dürfen nicht leer sein. Anfragen mit leeren Werten werden mit einer ValidationException
-Ausnahme abgelehnt.
Jedes AttributeUpdates
-Element besteht aus einem zu ändernden Attributnamen zusammen mit Folgendem:
-
Value
– Der neue Wert, falls zutreffend, für dieses Attribut. -
Action
– Ein Wert, der angibt, wie die Aktualisierung durchzuführen ist. Diese Aktion ist nur für ein vorhandenes Attribut gültig, dessen Datentyp Zahl ist, oder das ein Satz ist. Verwenden SieADD
nicht für andere Datentypen.Wenn ein Element mit dem angegebenen Primärschlüssel in der Tabelle gefunden wird, führen die folgenden Werte die nachstehenden Aktionen aus:
-
PUT
– Fügt dem Element das angegebene Attribut hinzu. Wenn das Attribut bereits vorhanden ist, wird es durch den neuen Wert ersetzt. -
DELETE
– Entfernt das Attribut und den Wert, wenn fürDELETE
kein Wert angegeben ist. Der Datentyp des angegebenen Werts muss dem Datentyp des vorhandenen Werts entsprechen.Wenn ein Satz von Werten angegeben wird, müssen diese Werte vom alten Satz abgezogen werden. Beispiel: Wenn der Attributwert der Satz
[a,b,c]
war und dieDELETE
-Aktion[a,c]
angibt, ist der endgültige Attributwert[b]
. Einen leeren Satz anzugeben, führt zu einem Fehler. -
ADD
– Fügt dem Element den angegebenen Wert hinzu, wenn das Attribut nicht bereits vorhanden ist. Wenn das Attribut nicht vorhanden ist, hängt das Verhalten vonADD
vom Datentyp des Attributs ab:-
Wenn das vorhandene Attribut und
Value
jeweils eine Zahl ist, dann wirdValue
mathematisch zum vorhandenen Attribut addiert. WennValue
eine negative Zahl ist, wird sie von dem vorhandenen Attribut abgezogen.Anmerkung
Wenn Sie
ADD
einsetzen, um einen Zahlenwert für ein Element, das vor der Aktualisierung nicht vorhanden ist, zu erhöhen oder zu verringern, verwendet DynamoDB 0 als Anfangswert.Wenn Sie
ADD
für ein vorhandenes Element nutzen, um einen Attributwert, der vor der Aktualisierung nicht vorhanden ist, zu erhöhen oder zu verringern, verwendet DynamoDB0
als Anfangswert. Angenommen, das Element, das Sie aktualisieren möchten, hat kein Attribut mit dem Namen itemcount, aber Sie möchten trotzdem die ZahlADD
mit3
zu diesem Attribut addieren. DynamoDB erstellt das itemcount-Attribut, legt den Anfangswert auf0
fest und addiert3
. Das Ergebnis ist ein neues itemcount-Attribut mit dem Wert3
. -
Wenn der vorhandene Datentyp ein Satz ist und
Value
ebenfalls ein Satz ist, dann wirdValue
dem vorhandenen Satz angefügt. Beispiel: Wenn der Attributwert der Satz[1,2]
ist und dieADD
-Aktion[3]
angibt, ist der endgültige Attributwert[1,2,3]
. Ein Fehler tritt auf, wenn eineADD
-Aktion für ein festgelegtes Attribut angegeben wird und der angegebene Attributtyp nicht mit dem vorhandenen Satztyp übereinstimmt.Beide Sätze müssen denselben primitiven Datentyp besitzen. Wenn es sich bei dem vorhandenen Datentyp beispielsweise um einen Satz von Zeichenfolgen handelt, muss
Value
ebenfalls ein Zeichenfolgensatz sein.
-
Wenn kein Element mit dem angegebenen Primärschlüssel in der Tabelle gefunden wird, führen die folgenden Werte die nachstehenden Aktionen aus:
-
PUT
– Veranlasst DynamoDB, ein neues Element mit dem angegebenen Primärschlüssel zu erstellen, und fügt dann das Attribut hinzu. -
DELETE
– Nichts passiert, da Attribute nicht aus einem nicht vorhandenen Element gelöscht werden können. Die Operation ist erfolgreich, aber DynamoDB erstellt kein neues Element. -
ADD
– Veranlasst DynamoDB, ein Element mit dem bereitgestellten Primärschlüssel und einer Zahl (oder Zahlensätzen) für den Attributwert zu erstellen. Die einzigen zulässigen Datentypen sind Zahl und Zahlensatz.
-
Wenn Sie Attribute, die Teil eines Indexschlüssels sind, bereitstellen, müssen die Datentypen dieser Attribute mit den Typen des Schemas in der Attributdefinition der Tabelle übereinstimmen.
UpdateExpressionStattdessen verwenden — Beispiel
Angenommen, Sie möchten ein Element in der Tabelle Music ändern. Sie könnten eine UpdateItem
Anfrage mit einem AttributeUpdates
Parameter verwenden, wie in diesem AWS CLI Beispiel:
aws dynamodb update-item \ --table-name Music \ --key '{ "SongTitle": {"S":"Call Me Today"}, "Artist": {"S":"No One You Know"} }' \ --attribute-updates '{ "Genre": { "Action": "PUT", "Value": {"S":"Rock"} } }'
Sie können stattdessen UpdateExpression
verwenden.
aws dynamodb update-item \ --table-name Music \ --key '{ "SongTitle": {"S":"Call Me Today"}, "Artist": {"S":"No One You Know"} }' \ --update-expression 'SET Genre = :g' \ --expression-attribute-values '{ ":g": {"S":"Rock"} }'