Mit der DynamoDB verwenden Sie die UpdateItem
OperationAPI, 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. Atomare Zähler ähneln in vielerlei Hinsicht Sequenzgeneratoren, Identitätsspalten oder Autoinkrement-Feldern in Datenbanken. SQL
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"
}
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. Atomare Zähler ähneln in vielerlei Hinsicht Sequenzgeneratoren, Identitätsspalten oder Autoinkrement-Feldern in Datenbanken. SQL
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'