Use a instrução UPDATE
para modificar o valor de um ou mais atributos em um item em uma tabela do Amazon DynamoDB.
nota
Você só pode atualizar um item de cada vez; não é possível emitir uma única instrução PartiQL do DynamoDB para atualizar vários itens. Para obter informações sobre como atualizar vários itens, consulte Executar transações com PartiQL para DynamoDB ou Executar operações em lote com PartiQL para DynamoDB.
Sintaxe
UPDATE
table
[SET | REMOVE]path
[=data
] […] WHEREcondition
[RETURNINGreturnvalues
] <returnvalues> ::= [ALL OLD | MODIFIED OLD | ALL NEW | MODIFIED NEW] *
Parâmetros
tabela
-
(Obrigatório) A tabela que contém os dados a serem modificados.
path
-
(Obrigatório) Um nome de atributo ou caminho de documento a ser criado ou modificado.
data
-
(Obrigatório) Um valor de atributo ou o resultado de uma operação.
As operações com suporte a serem usadas com SET:
-
LIST_APPEND: adiciona um valor a um tipo de lista.
-
SET_ADD: adiciona um valor a um conjunto de números ou strings.
-
SET_DELETE: remove um valor de um conjunto de números ou strings.
-
condição
-
(Obrigatório) Os critérios de seleção para o item a ser modificado. Essa condição deve ser resolvida em um único valor de chave primária.
returnvalues
-
(Opcional) Use
returnvalues
se desejar obter os atributos de item como eles aparecem antes ou depois de serem atualizados. Os valores válidos são:-
ALL OLD *
: retorna todos os atributos do item como eles apareciam antes da operação de atualização. -
MODIFIED OLD *
: retorna somente os atributos atualizados como eles apareciam antes da operação de atualização. -
ALL NEW *
: retorna todos os atributos do item como eles aparecem após a operação de atualização. -
MODIFIED NEW *
: retorna somente os atributos atualizados como eles aparecem após a operaçãoUpdateItem
.
-
Valor de retorno
Esta instrução não retornará um valor a menos que o parâmetro returnvalues
seja especificado.
nota
Se a cláusula WHERE da instrução UPDATE não for avaliada como true para nenhum item na tabela do DynamoDB, ConditionalCheckFailedException
será retornado.
Exemplos
Atualiza um valor de atributo em um item existente. Se o atributo não existir, ele será criado.
A consulta a seguir atualiza um item na tabela "Music"
adicionando um atributo do tipo Number (AwardsWon
) e um atributo do tipo Map (AwardDetail
).
UPDATE "Music"
SET AwardsWon=1
SET AwardDetail={'Grammys':[2020, 2018]}
WHERE Artist='Acme Band' AND SongTitle='PartiQL Rocks'
Você pode adicionar RETURNING ALL OLD *
para retornar os atributos como eles apareceram antes da operação Update
.
UPDATE "Music"
SET AwardsWon=1
SET AwardDetail={'Grammys':[2020, 2018]}
WHERE Artist='Acme Band' AND SongTitle='PartiQL Rocks'
RETURNING ALL OLD *
Isso retorna o seguinte:
{
"Items": [
{
"Artist": {
"S": "Acme Band"
},
"SongTitle": {
"S": "PartiQL Rocks"
}
}
]
}
Você pode adicionar RETURNING ALL NEW *
para retornar os atributos como eles apareceram depois da operação Update
.
UPDATE "Music"
SET AwardsWon=1
SET AwardDetail={'Grammys':[2020, 2018]}
WHERE Artist='Acme Band' AND SongTitle='PartiQL Rocks'
RETURNING ALL NEW *
Isso retorna o seguinte:
{
"Items": [
{
"AwardDetail": {
"M": {
"Grammys": {
"L": [
{
"N": "2020"
},
{
"N": "2018"
}
]
}
}
},
"AwardsWon": {
"N": "1"
}
}
]
}
A consulta a seguir atualiza um item na tabela "Music"
anexando-o a uma lista AwardDetail.Grammys
.
UPDATE "Music"
SET AwardDetail.Grammys =list_append(AwardDetail.Grammys,[2016])
WHERE Artist='Acme Band' AND SongTitle='PartiQL Rocks'
A consulta a seguir atualiza um item na tabela "Music"
removendo-o de uma lista AwardDetail.Grammys
.
UPDATE "Music"
REMOVE AwardDetail.Grammys[2]
WHERE Artist='Acme Band' AND SongTitle='PartiQL Rocks'
A consulta a seguir atualiza um item na tabela "Music"
adicionando BillBoard
ao mapa AwardDetail
.
UPDATE "Music"
SET AwardDetail.BillBoard=[2020]
WHERE Artist='Acme Band' AND SongTitle='PartiQL Rocks'
A consulta a seguir atualiza um item na tabela "Music"
adicionando o atributo de conjunto de strings BandMembers
.
UPDATE "Music"
SET BandMembers =<<'member1', 'member2'>>
WHERE Artist='Acme Band' AND SongTitle='PartiQL Rocks'
A consulta a seguir atualiza um item na tabela "Music"
adicionando newbandmember
ao conjunto de strings BandMembers
.
UPDATE "Music"
SET BandMembers =set_add(BandMembers, <<'newbandmember'>>)
WHERE Artist='Acme Band' AND SongTitle='PartiQL Rocks'