Comando UPDATE no Amazon QLDB - Amazon Quantum Ledger Database (Amazon QLDB)

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á.

Comando UPDATE no Amazon QLDB

No Amazon QLDB, use o comando UPDATE 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 (INSERIR, REMOVER ou DEFINIR).

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 no 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 instrução FROM-SET.

UPDATE table_name [ AS table_alias ] [ BY id_alias ] SET element = data [, element = data, ... ] [ WHERE condition ]

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 [ AS table_alias ] [ BY id_alias ] INSERT INTO element VALUE data [ AT key_name ] [ WHERE condition ]

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 [ AS table_alias ] [ BY id_alias ] REMOVE element [ WHERE condition ]

Parâmetros

table_name

O nome do usuário da tabela que contém os dados a serem modificados. As instruções DML são suportadas somente 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áusula UPDATE usando a palavra-chave BY. Isso é útil quando você deseja filtrar a ID do documento ao consultar a visualização padrão do usuário. Para obter mais informações, consulte Usando a cláusula BY para consultar a ID do documento.

Elemento

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 valor AT em uma posição específica em um documento.

WHERE condição

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'

Executando programaticamente usando o driver

Para saber como executar programaticamente essa instrução usando o driver QLDB, consulte os seguintes tutoriais em Conceitos básicos do driver: