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'