AttributeUpdates (Vermächtnis) - 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.

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 Sie ADD 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ür DELETE 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 die DELETE-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 von ADD vom Datentyp des Attributs ab:

      • Wenn das vorhandene Attribut und Value jeweils eine Zahl ist, dann wird Value mathematisch zum vorhandenen Attribut addiert. Wenn Value 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 DynamoDB 0 als Anfangswert. Angenommen, das Element, das Sie aktualisieren möchten, hat kein Attribut mit dem Namen itemcount, aber Sie möchten trotzdem die Zahl ADD mit 3 zu diesem Attribut addieren. DynamoDB erstellt das itemcount-Attribut, legt den Anfangswert auf 0 fest und addiert 3. Das Ergebnis ist ein neues itemcount-Attribut mit dem Wert 3.

      • Wenn der vorhandene Datentyp ein Satz ist und Value ebenfalls ein Satz ist, dann wird Value dem vorhandenen Satz angefügt. Beispiel: Wenn der Attributwert der Satz [1,2] ist und die ADD-Aktion [3] angibt, ist der endgültige Attributwert [1,2,3]. Ein Fehler tritt auf, wenn eine ADD-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"} }'