Con la API de DynamoDB, se utiliza la operación UpdateItem para modificar un solo elemento.
{
TableName: "Music",
Key: {
"Artist":"No One You Know",
"SongTitle":"Call Me Today"
},
UpdateExpression: "SET RecordLabel = :label",
ExpressionAttributeValues: {
":label": "Global Records"
}
}
Debe especificar los atributos Key del elemento que va a modificar y una expresión UpdateExpression para especificar los valores de los atributos. UpdateItem se comporta como una operación “upsert”. Si el elemento está presente en tabla, se actualiza y, si no está presente, se agrega (inserta).
UpdateItem admite las escrituras condicionales, en las que la operación únicamente se lleva a cabo correctamente si una expresión ConditionExpression determinada se evalúa en true. Por ejemplo, la operación UpdateItem siguiente no lleva a cabo la actualización a no ser que el precio de la canción sea mayor o igual que 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 también admite los contadores atómicos, que son atributos del tipo Number que se pueden incrementar o reducir. Los contadores atómicos se parecen en muchos aspectos a los generadores de secuencia, las columnas de identidad o los campos de incremento automático de las bases de datos SQL.
A continuación se muestra un ejemplo de operación UpdateItem utilizada para inicializar un nuevo atributo (Plays) que permite realizar el seguimiento del número de veces que se ha reproducido una canción.
{
TableName: "Music",
Key: {
"Artist":"No One You Know",
"SongTitle":"Call Me Today"
},
UpdateExpression: "SET Plays = :val",
ExpressionAttributeValues: {
":val": 0
},
ReturnValues: "UPDATED_NEW"
}
El parámetro ReturnValues se establece en UPDATED_NEW, que devuelve los nuevos valores de todos los atributos que se han actualizado. En este caso, devuelve 0 (cero).
Cada vez que alguien reproduce esta canción, podemos usar la operación UpdateItem para incrementar Plays en una unidad.
{
TableName: "Music",
Key: {
"Artist":"No One You Know",
"SongTitle":"Call Me Today"
},
UpdateExpression: "SET Plays = Plays + :incr",
ExpressionAttributeValues: {
":incr": 1
},
ReturnValues: "UPDATED_NEW"
}
Con PartiQL, se utiliza la operación ExecuteStatement para modificar un elemento de una tabla, mediante la instrucción Update de PartiQL.
La clave principal de esta tabla consta de Artist y SongTitle. Debe especificar los valores de estos atributos.
UPDATE Music
SET RecordLabel ='Global Records'
WHERE Artist='No One You Know' AND SongTitle='Call Me Today'
También puede modificar varios campos a la vez, como en el ejemplo siguiente.
UPDATE Music
SET RecordLabel = 'Global Records'
SET AwardsWon = 10
WHERE Artist ='No One You Know' AND SongTitle='Call Me Today'
Update también admite los contadores atómicos, que son atributos del tipo Number que se pueden incrementar o reducir. Los contadores atómicos se parecen en muchos aspectos a los generadores de secuencia, las columnas de identidad o los campos de incremento automático de las bases de datos SQL.
A continuación, se muestra un ejemplo de instrucción Update utilizada para inicializar un nuevo atributo (Plays [Reproducciones]) que permite hacer el seguimiento del número de veces que se ha reproducido una canción.
UPDATE Music
SET Plays = 0
WHERE Artist='No One You Know' AND SongTitle='Call Me Today'
Cada vez que alguien reproduce esta canción, podemos usar la instrucción Update para aumentar Plays (Reproducciones) en una unidad.
UPDATE Music
SET Plays = Plays + 1
WHERE Artist='No One You Know' AND SongTitle='Call Me Today'