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.
Aktualisierungen für PartiQL-Anweisungen für DynamoDB
Verwenden der UPDATE
-Anweisung, um den Wert eines oder mehrerer Attribute innerhalb eines Elements in einer Amazon-DynamoDB-Tabelle zu ändern.
Anmerkung
Sie können nur ein Element gleichzeitig aktualisieren. Sie können keine einzelne DynamoDB-PartiQL-Anweisung ausgeben, die mehrere Elemente aktualisiert. Weitere Informationen zum Aktualisieren mehrerer Elemente finden Sie unter Ausführen von Transaktionen mit PartiQL für DynamoDB oder Ausführen von Batchoperationen mit PartiQL für DynamoDB.
Syntax
UPDATE
table
[SET | REMOVE]path
[=data
] […] WHEREcondition
[RETURNINGreturnvalues
] <returnvalues> ::= [ALL OLD | MODIFIED OLD | ALL NEW | MODIFIED NEW] *
Parameter
table
-
(erforderlich) Die Benutzertabelle mit den zu ändernden Daten.
path
-
(Erforderlich) Ein Attributname oder Dokumentpfad, der erstellt oder geändert werden soll.
data
-
(Erforderlich) Ein Attributwert oder das Ergebnis einer Operation.
Die unterstützten Operationen zur Verwendung mit: SET
-
LIST_APPEND: Fügt einem Listentyp einen Wert hinzu.
-
SET_ADD: Fügt einem Zahlen- oder Zeichenkettensatz einen Wert hinzu.
-
SET_DELETE: entfernt einen Wert aus einem Zahlen- oder Zeichenkettensatz.
-
condition
-
(erforderlich) Die Auswahlkriterien für die Elemente, die geändert werden sollen. Diese Bedingung muss auf einen einzelnen Primärschlüsselwert aufgelöst werden.
returnvalues
-
(Optional) Verwenden Sie
returnvalues
, wenn Sie die Elementattribute so abrufen möchten, wie sie vor oder nach der Aktualisierung angezeigt werden. Die gültigen Werte sind:-
ALL OLD *
– Gibt alle Attribute des Elements so zurück, wie sie vor dem Aktualisieren dargestellt wurden. -
MODIFIED OLD *
– Gibt nur die aktualisierten Attribute so zurück, wie sie vor dem Aktualisieren dargestellt wurden. -
ALL NEW *
– Gibt alle Attribute des Elements zurück, wie sie nach dem Aktualisierungsvorgang angezeigt werden. -
MODIFIED NEW *
– Gibt nur die aktualisierten Attribute so zurück, wie sie nach demUpdateItem
vorkommen.
-
Rückgabewert
Diese Anweisung gibt keinen Wert zurück, es sei denn der returnvalues
-Parameter ist angegeben.
Anmerkung
Wenn die WHERE Klausel der UPDATE Anweisung für kein Element in der DynamoDB-Tabelle als wahr ausgewertet ConditionalCheckFailedException
wird, wird zurückgegeben.
Beispiele
Aktualisieren Sie einen Attributwert in einem vorhandenen Element. Wenn das Attribut nicht vorhanden ist, wird es erstellt.
Mit der folgenden Abfrage wird ein Element in der "Music"
-Tabelle durch Hinzufügen eines Attributs vom Typ „number“ (AwardsWon
) und ein Attribut vom Typ „map“ (AwardDetail
) enthalten.
UPDATE "Music" SET AwardsWon=1 SET AwardDetail={'Grammys':[2020, 2018]} WHERE Artist='Acme Band' AND SongTitle='PartiQL Rocks'
Sie können RETURNING ALL OLD *
hinzufügen, um die Attribute so zurückzugeben, wie sie vor der Update
-Operation erschienen.
UPDATE "Music" SET AwardsWon=1 SET AwardDetail={'Grammys':[2020, 2018]} WHERE Artist='Acme Band' AND SongTitle='PartiQL Rocks' RETURNING ALL OLD *
Damit wird Folgendes zurückgegeben:
{ "Items": [ { "Artist": { "S": "Acme Band" }, "SongTitle": { "S": "PartiQL Rocks" } } ] }
Sie können RETURNING ALL NEW *
hinzufügen, um die Attribute so zurückzugeben, wie sie nach der Update
-Operation erschienen.
UPDATE "Music" SET AwardsWon=1 SET AwardDetail={'Grammys':[2020, 2018]} WHERE Artist='Acme Band' AND SongTitle='PartiQL Rocks' RETURNING ALL NEW *
Damit wird Folgendes zurückgegeben:
{ "Items": [ { "AwardDetail": { "M": { "Grammys": { "L": [ { "N": "2020" }, { "N": "2018" } ] } } }, "AwardsWon": { "N": "1" } } ] }
Mit der folgenden Abfrage wird ein Element in der "Music"
-Tabelle durch Anhängen an eine Liste AwardDetail.Grammys
aktualisiert.
UPDATE "Music" SET AwardDetail.Grammys =list_append(AwardDetail.Grammys,[2016]) WHERE Artist='Acme Band' AND SongTitle='PartiQL Rocks'
Mit der folgenden Abfrage wird ein Element in der "Music"
-Tabelle durch Entfernen aus einer Liste AwardDetail.Grammys
aktualisiert.
UPDATE "Music" REMOVE AwardDetail.Grammys[2] WHERE Artist='Acme Band' AND SongTitle='PartiQL Rocks'
Mit der folgenden Abfrage wird ein Element in der "Music"
-Tabelle durch Hinzufügen von BillBoard
zur Karte AwardDetail
aktualisiert.
UPDATE "Music" SET AwardDetail.BillBoard=[2020] WHERE Artist='Acme Band' AND SongTitle='PartiQL Rocks'
Die folgende Abfrage aktualisiert ein Element in der "Music"
-Tabelle durch Hinzufügen des Zeichenfolgensatzattributs BandMembers
.
UPDATE "Music" SET BandMembers =<<'member1', 'member2'>> WHERE Artist='Acme Band' AND SongTitle='PartiQL Rocks'
Die folgende Abfrage aktualisiert ein Element in der "Music"
-Tabelle, indem newbandmember
zum Zeichenfolgensatz BandMembers
hinzugefügt wird.
UPDATE "Music" SET BandMembers =set_add(BandMembers, <<'newbandmember'>>) WHERE Artist='Acme Band' AND SongTitle='PartiQL Rocks'