Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Il linguaggio SQL fornisce ilUPDATE
per la modifica dei dati. Amazon DynamoDB utilizza l'UpdateItem
per eseguire attività simili.
Modifica dei dati in una tabella con SQL
In SQL, usi l'istruzione UPDATE
per modificare una o più righe. La clausola SET
specifica i nuovi valori per una o più colonne e la clausola WHERE
determina quali righe vengono modificate. Di seguito è riportato un esempio.
UPDATE Music
SET RecordLabel = 'Global Records'
WHERE Artist = 'No One You Know' AND SongTitle = 'Call Me Today';
Se nessuna riga corrisponde alla clausola WHERE
, l'istruzione UPDATE
non ha alcun effetto.
Modifica dei dati in una tabella in DynamoDB
In DynamoDB, puoi utilizzare l'API DynamoDB o PartiQL, un linguaggio di query compatibile con SQL, per modificare un singolo elemento. Se vuoi modificare più elementi, devi utilizzare più operazioni.
Con l’API DynamoDB, l'operazione UpdateItem
viene utilizzata per modificare un singolo elemento.
{ TableName: "Music", Key: { "Artist":"No One You Know", "SongTitle":"Call Me Today" }, UpdateExpression: "SET RecordLabel = :label", ExpressionAttributeValues: { ":label": "Global Records" } }
È necessario specificare gli attributi Key
dell'elemento da modificare e UpdateExpression
per specificare i valori degli attributi. UpdateItem
si comporta come un'operazione "upsert". L'elemento viene aggiornato se è presente nella tabella, ma in caso contrario viene aggiunto (inserito) un nuovo elemento.
UpdateItem
supporta le scritture condizionali, in cui l'operazione ha esito positivo solo se una specifica ConditionExpression
restituisce true. Ad esempio, la seguente operazione UpdateItem
non esegue l'aggiornamento a meno che il prezzo della canzone non sia maggiore o uguale a 2,00.
{ 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
supporta anche i contatori atomici o gli attributi di tipo Number
che possono essere incrementati o decrementati. I contatori atomici sono simili per molti versi ai generatori di sequenza, alle colonne di identità o ai campi a incremento automatico dei database SQL.
Di seguito è riportato un esempio di un'operazione UpdateItem
per inizializzare un nuovo attributo (Plays) per tenere traccia del numero di volte in cui una canzone viene riprodotta.
{ TableName: "Music", Key: { "Artist":"No One You Know", "SongTitle":"Call Me Today" }, UpdateExpression: "SET Plays = :val", ExpressionAttributeValues: { ":val": 0 }, ReturnValues: "UPDATED_NEW" }
Il parametro ReturnValues
è impostato su UPDATED_NEW
che restituisce i nuovi valori degli attributi aggiornati. In questo caso restituisce 0 (zero).
Ogni volta che qualcuno riproduce questa canzone, possiamo usare la seguente operazione UpdateItem
per incrementare Plays di uno.
{ TableName: "Music", Key: { "Artist":"No One You Know", "SongTitle":"Call Me Today" }, UpdateExpression: "SET Plays = Plays + :incr", ExpressionAttributeValues: { ":incr": 1 }, ReturnValues: "UPDATED_NEW" }