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 (Legacy)
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 SieADDnicht 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ürDELETEkein 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 vonADDvom Datentyp des Attributs ab:-
Wenn das vorhandene Attribut und
Valuejeweils eine Zahl ist, dann wirdValuemathematisch zum vorhandenen Attribut addiert. WennValueeine negative Zahl ist, wird sie von dem vorhandenen Attribut abgezogen.Anmerkung
Wenn Sie
ADDeinsetzen, 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
ADDfür ein vorhandenes Element nutzen, um einen Attributwert, der vor der Aktualisierung nicht vorhanden ist, zu erhöhen oder zu verringern, verwendet DynamoDB0als Anfangswert. Angenommen, das Element, das Sie aktualisieren möchten, hat kein Attribut mit dem Namen itemcount, aber Sie möchten trotzdem die ZahlADDmit3zu diesem Attribut addieren. DynamoDB erstellt das itemcount-Attribut, legt den Anfangswert auf0fest und addiert3. Das Ergebnis ist ein neues itemcount-Attribut mit dem Wert3. -
Wenn der vorhandene Datentyp ein Satz ist und
Valueebenfalls ein Satz ist, dann wirdValuedem 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
Valueebenfalls 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"} }'