Ändern von Daten in einer Tabelle - 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.

Ändern von Daten in einer Tabelle

Die SQL-Sprache bietet die UPDATE-Anweisung zum Ändern von Daten. Amazon DynamoDB verwendet die UpdateItem-Operation für ähnliche Aufgaben.

Ändern von Daten in einer Tabelle mit SQL

In SQL verwenden Sie die UPDATE-Anweisung, um eine oder mehrere Zeilen zu ändern. Die SET-Klausel gibt neue Werte für eine oder mehrere Spalten an und mit der WHERE-Klausel wird bestimmt, welche Zeilen geändert werden. Im Folgenden wird ein Beispiel gezeigt.

UPDATE Music SET RecordLabel = 'Global Records' WHERE Artist = 'No One You Know' AND SongTitle = 'Call Me Today';

Wenn keine Zeilen mit der WHERE-Klausel übereinstimmen, ist die UPDATE-Anweisung wirkungslos.

Ändern von Daten in einer Tabelle in DynamoDB

In DynamoDB können Sie entweder die DynamoDB-API oder PartiQL, eine SQL-kompatible Abfragesprache, verwenden, um ein einzelnes Element zu ändern. Wenn Sie mehrere Elemente ändern möchten, müssen Sie mehrere Operationen verwenden.

DynamoDB API

In der DynamoDB-API verwenden Sie die UpdateItem-Aktion, um ein einzelnes Element zu ändern.

{ TableName: "Music", Key: { "Artist":"No One You Know", "SongTitle":"Call Me Today" }, UpdateExpression: "SET RecordLabel = :label", ExpressionAttributeValues: { ":label": "Global Records" } }

Sie müssen die Key-Attribute des zu ändernden Elements angeben sowie einen UpdateExpression zur Angabe der Attributwerte. UpdateItem verhält sich wie eine „upsert“-Operation. Das Element wird aktualisiert, wenn es in der Tabelle vorhanden ist. Andernfalls wird ein neues Element hinzugefügt (eingefügt).

UpdateItem unterstützt bedingte Schreibvorgänge, in denen die Operation nur erfolgreich abgeschlossen wird, wenn ein bestimmter ConditionExpression mit TRUE ausgewertet wird. Die folgende UpdateItem-Aktion führt die Aktualisierung nur durch, wenn der Preis des Songs größer oder gleich 2,00 ist.

{ TableName: "Music", Key: { "Artist":"No One You Know", "SongTitle":"Call Me Today" }, UpdateExpression: "SET RecordLabel = :label", ConditionExpression: "Price >= :p", ExpressionAttributeValues: { ":label": "Global Records", ":p": 2.00 } }

UpdateItem unterstützt außerdem unteilbare Zähler, dies sind Attribute vom Typ Number, die schrittweise erhöht oder verringert werden können. Unteilbare Zähler ähneln in vielerlei Hinsicht Sequenzgeneratoren, Identitätsspalten oder Feldern für die automatische Inkrementierung in SQL-Datenbanken.

Das folgende Beispiel ist eine UpdateItem-Operation zur Initialisierung eines neuen Attributs (Plays), um zu verfolgen, wie oft der Song abgespielt wurde.

{ TableName: "Music", Key: { "Artist":"No One You Know", "SongTitle":"Call Me Today" }, UpdateExpression: "SET Plays = :val", ExpressionAttributeValues: { ":val": 0 }, ReturnValues: "UPDATED_NEW" }

Der Parameter ReturnValues wird auf UPDATED_NEW festgelegt. Hiermit werden die neuen Werte aktualisierter Attribute zurückgegeben. In diesem Fall wird 0 (Null) zurückgegeben.

Sobald dieser Song abgespielt wird, können wir die folgende UpdateItem-Operation verwenden, um das Attribut Plays um eins zu erhöhen.

{ TableName: "Music", Key: { "Artist":"No One You Know", "SongTitle":"Call Me Today" }, UpdateExpression: "SET Plays = Plays + :incr", ExpressionAttributeValues: { ":incr": 1 }, ReturnValues: "UPDATED_NEW" }
Anmerkung

Codebeispiele, die UpdateItem verwenden, finden Sie unter Erste Schritte mit DynamoDB und den SDKs AWS.

PartiQL for DynamoDB

Mit PartiQL verwenden Sie die ExecuteStatement-Operation zum Ändern eines Elements in einer Tabelle mit PartiQL Update-Anweisung.

Der Primärschlüssel für diese Tabelle besteht aus Artist und. SongTitle Sie müssen Werte für diese Attribute angeben.

UPDATE Music SET RecordLabel ='Global Records' WHERE Artist='No One You Know' AND SongTitle='Call Me Today'

Sie können wie im folgenden Beispiel auch mehrere Felder gleichzeitig ändern.

UPDATE Music SET RecordLabel = 'Global Records' SET AwardsWon = 10 WHERE Artist ='No One You Know' AND SongTitle='Call Me Today'

Update unterstützt außerdem unteilbare Zähler, dies sind Attribute vom Typ Number, die schrittweise erhöht oder verringert werden können. Unteilbare Zähler ähneln in vielerlei Hinsicht Sequenzgeneratoren, Identitätsspalten oder Feldern für die automatische Inkrementierung in SQL-Datenbanken.

Das folgende Beispiel ist eine Update-Anweisung zur Initialisierung eines neuen Attributs (Plays), um zu verfolgen, wie oft der Song abgespielt wurde.

UPDATE Music SET Plays = 0 WHERE Artist='No One You Know' AND SongTitle='Call Me Today'

Sobald dieser Song abgespielt wird, können wir die folgende Update-Anweisung verwenden, um das Attribut Spielt um eins zu erhöhen.

UPDATE Music SET Plays = Plays + 1 WHERE Artist='No One You Know' AND SongTitle='Call Me Today'
Anmerkung

Codebeispiele, die Update und ExecuteStatement verwenden, finden Sie unter Aktualisierungen für PartiQL-Anweisungen für DynamoDB.