As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
UPDATEcomando na Amazon QLDB
Importante
Aviso de fim do suporte: os clientes existentes poderão usar a Amazon QLDB até o final do suporte em 31/07/2025. Para obter mais detalhes, consulte Migrar um Amazon QLDB Ledger para o Amazon Aurora Postgre
Na AmazonQLDB, use o UPDATE
comando para modificar o valor de um ou mais elementos em um documento. Se um elemento não existir, ele será inserido.
Você também pode usar esse comando para inserir e remover explicitamente elementos específicos em um documento, de forma semelhante às instruções FROM(INSERT,REMOVE, ouSET).
nota
Para aprender a controlar o acesso para executar este comando do PartiQL em tabelas específicas, consulte Introdução ao modo de permissões padrão na Amazon QLDB.
Sintaxe
UPDATE-SET
Atualize um ou mais elementos em um documento. Se um elemento não existir, ele será inserido. Isso é semanticamente o mesmo que a SET declaração FROM-.
UPDATE
table_name
[ AStable_alias
] [ BYid_alias
] SETelement
=data
[,element
=data
, ... ] [ WHEREcondition
]
UPDATE-INSERT
Insira um novo elemento em um documento existente. Para inserir um novo documento de nível superior em uma tabela, você deve usar INSERT.
UPDATE
table_name
[ AStable_alias
] [ BYid_alias
] INSERT INTOelement
VALUEdata
[ ATkey_name
] [ WHEREcondition
]
UPDATE-REMOVE
Remova um elemento existente em um documento ou remova um documento inteiro de nível superior. A última é semanticamente igual à sintaxe DELETE tradicional.
UPDATE
table_name
[ AStable_alias
] [ BYid_alias
] REMOVEelement
[ WHEREcondition
]
Parâmetros
table_name
-
O nome do usuário da tabela que contém os dados a serem modificados. DMLas declarações só são suportadas na visualização padrão do usuário. Cada instrução só pode ser executada em uma única tabela.
- AS
table_alias
-
(Opcional) Um alias definido pelo usuário que varia em uma tabela a ser atualizada. A palavra-chave
AS
é opcional. - BY
id_alias
-
(Opcional) Um alias definido pelo usuário que se vincula ao campo de metadados
id
de cada documento no conjunto de resultados. O alias deve ser declarado na cláusulaUPDATE
usando a palavra-chaveBY
. Isso é útil quando você deseja filtrar o ID do documento ao consultar a visualização padrão do usuário. Para ter mais informações, consulte Usar a cláusula BY para consultar o ID do documento. element
-
Um elemento de documento a ser criado ou modificado.
data
-
Um novo valor para o elemento.
- AT
key_name
-
Um nome da chave a ser adicionado aos documentos a serem modificados. Você deve especificar o
VALUE
correspondente junto com o nome da chave. Isso é necessário para inserir um novo valorAT
em uma posição específica em um documento. - WHERE
condition
-
Os critérios de seleção para os documentos a serem modificados.
nota
Se você omitir a cláusula WHERE
, todos os documentos na tabela serão modificados.
Valor de retorno
documentId
: o ID exclusivo de cada documento que você atualizou.
Exemplos
Atualize um campo em um documento. Se o campo não existir, ele será inserido.
UPDATE Person AS p SET p.LicenseNumber = 'HOLLOR123ZZ' WHERE p.GovId = '111-22-3333'
Filtre no campo de metadados id
do documento atribuído pelo sistema.
UPDATE Person AS p BY pid SET p.LicenseNumber = 'HOLLOR123ZZ' WHERE pid = '
documentId
'
Substitua um documento inteiro.
UPDATE Person AS p SET p = { 'FirstName' : 'Rosemarie', 'LastName' : 'Holloway', 'DOB' : `1977-06-18T`, 'GovId' : '111-22-3333', 'GovIdType' : 'Driver License', 'Address' : '4637 Melrose Street, Ellensburg, WA, 98926' } WHERE p.GovId = '111-22-3333'
Modifica o campo PersonId
do primeiro elemento na lista Owners.SecondaryOwners
em um documento.
UPDATE VehicleRegistration AS r SET r.Owners.SecondaryOwners[0].PersonId = 'abc123' WHERE r.VIN = '1N4AL11D75C109151'
Insere {'Mileage':26500}
como um par nome-valor de nível superior em um documento na tabela Vehicle
.
UPDATE Vehicle AS v INSERT INTO v VALUE 26500 AT 'Mileage' WHERE v.VIN = '1N4AL11D75C109151'
Anexa {'PersonId':'abc123'}
como um par nome-valor no campo Owners.SecondaryOwners
de um documento na tabela VehicleRegistration
. Observe que Owners.SecondaryOwners
já deve existir e ser um tipo de dados da lista para que essa instrução seja válida. Caso contrário, a palavra-chave AT
é exigida na cláusula INSERT INTO
.
UPDATE VehicleRegistration AS r INSERT INTO r.Owners.SecondaryOwners VALUE { 'PersonId' : 'abc123' } WHERE r.VIN = '1N4AL11D75C109151'
Insira {'PersonId':'abc123'}
como o primeiro elemento na lista Owners.SecondaryOwners
existente em um documento.
UPDATE VehicleRegistration AS r INSERT INTO r.Owners.SecondaryOwners VALUE {'PersonId' : 'abc123'} AT 0 WHERE r.VIN = '1N4AL11D75C109151'
Anexe vários pares de nome-valor à lista Owners.SecondaryOwners
existente em um documento.
UPDATE VehicleRegistration AS r INSERT INTO r.Owners.SecondaryOwners << {'PersonId' : 'abc123'}, {'PersonId' : 'def456'} >> WHERE r.VIN = '1N4AL11D75C109151'
Remove um elemento existente em um documento.
UPDATE Person AS p REMOVE p.Address WHERE p.GovId = '111-22-3333'
Remove um documento inteiro de uma tabela.
UPDATE Person AS p REMOVE p WHERE p.GovId = '111-22-3333'
Remove o primeiro elemento da lista Owners.SecondaryOwners
em um documento na tabela VehicleRegistration
.
UPDATE VehicleRegistration AS r REMOVE r.Owners.SecondaryOwners[0] WHERE r.VIN = '1N4AL11D75C109151'
Executar programaticamente usando o driver
Para saber como executar programaticamente essa instrução usando o QLDB driver, consulte os seguintes tutoriais em Introdução ao driver: