Com a API do DynamoDB, use a operação UpdateItem
para modificar um único item.
{
TableName: "Music",
Key: {
"Artist":"No One You Know",
"SongTitle":"Call Me Today"
},
UpdateExpression: "SET RecordLabel = :label",
ExpressionAttributeValues: {
":label": "Global Records"
}
}
Você deve especificar os atributos Key
do item a ser modificado, e uma UpdateExpression
para especificar valores de atributo. UpdateItem
comporta-se como uma operação “upsert”. O item será atualizado se existir na tabela. Do contrário, um novo item será adicionado (inserido).
UpdateItem
oferece suporte a gravações condicionais, nas quais a operação será bem-sucedida apenas se uma ConditionExpression
específica for verdadeira. Por exemplo, a operação UpdateItem
a seguir não realiza a atualização, a menos que o preço da música seja maior ou igual 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
também oferece suporte a contadores atômicos ou a atributos do tipo Number
que podem ser aumentados ou reduzidos. Os contadores atômicos são semelhantes de muitas maneiras a geradores de sequências, colunas de identidade ou campos de incremento automático em bancos de dados SQL.
Veja a seguir um exemplo de uma operação UpdateItem
para inicializar um novo atributo (Plays) e controlar o número de vezes em que uma música é reproduzida.
{
TableName: "Music",
Key: {
"Artist":"No One You Know",
"SongTitle":"Call Me Today"
},
UpdateExpression: "SET Plays = :val",
ExpressionAttributeValues: {
":val": 0
},
ReturnValues: "UPDATED_NEW"
}
O parâmetro ReturnValues
é definido como UPDATED_NEW
, o que retorna os novos valores de todos os atributos que foram atualizados. Neste caso, ele retorna 0 (zero).
Sempre que alguém reproduzir essa música, podemos usar a operação UpdateItem
a seguir para aumentar Plays por um.
{
TableName: "Music",
Key: {
"Artist":"No One You Know",
"SongTitle":"Call Me Today"
},
UpdateExpression: "SET Plays = Plays + :incr",
ExpressionAttributeValues: {
":incr": 1
},
ReturnValues: "UPDATED_NEW"
}
Com PartiQL, use a operação ExecuteStatement
para modificar um item em uma tabela, usando a instrução Update
PartiQL.
A chave primária dessa tabela consiste em Artist e SongTitle. Você deve especificar valores para esses atributos.
UPDATE Music
SET RecordLabel ='Global Records'
WHERE Artist='No One You Know' AND SongTitle='Call Me Today'
Também é possível modificar vários campos de uma só vez, como no exemplo a seguir.
UPDATE Music
SET RecordLabel = 'Global Records'
SET AwardsWon = 10
WHERE Artist ='No One You Know' AND SongTitle='Call Me Today'
Update
também oferece suporte a contadores atômicos ou a atributos do tipo Number
que podem ser aumentados ou reduzidos. Os contadores atômicos são semelhantes de muitas maneiras a geradores de sequências, colunas de identidade ou campos de incremento automático em bancos de dados SQL.
Veja a seguir um exemplo de instrução Update
para inicializar um novo atributo (Plays) para controlar o número de vezes em que uma música foi reproduzida.
UPDATE Music
SET Plays = 0
WHERE Artist='No One You Know' AND SongTitle='Call Me Today'
Sempre que alguém reproduzir essa música, poderemos usar a instrução Update
a seguir para aumentar Plays (Reproduções) em um.
UPDATE Music
SET Plays = Plays + 1
WHERE Artist='No One You Know' AND SongTitle='Call Me Today'