FROMcomando (INSERTREMOVE,, ouSET) na Amazon QLDB - Banco de dados Amazon Quantum Ledger (AmazonQLDB)

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

FROMcomando (INSERTREMOVE,, ouSET) 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. SQL

Na AmazonQLDB, uma declaração que começa com FROM é uma extensão PartiQL que permite inserir e remover elementos específicos em um documento. Você também pode usar essa instrução para atualizar elementos existentes em um documento, semelhante ao comando UPDATE.

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

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

FROM table_name [ AS table_alias ] [ BY id_alias ] [ WHERE condition ] INSERT INTO element VALUE data [ AT key_name ]

FROM-REMOVE

Remova um elemento existente em um documento ou remova um documento inteiro de nível superior. A última é semanticamente igual à sintaxe DELETE tradicional.

FROM table_name [ AS table_alias ] [ BY id_alias ] [ WHERE condition ] REMOVE element

FROM-SET

Atualize um ou mais elementos em um documento. Se um elemento não existir, ele será inserido. Ela é semanticamente igual à sintaxe UPDATE tradicional.

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

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.

Nessa cláusula, você também pode incluir uma ou mais coleções aninhadas na tabela especificada. Para obter mais detalhes, consulte Coleções aninhadas.

AS table_alias

(Opcional) Um alias definido pelo usuário que varia em uma tabela a ser modificada. Todos os aliases de tabela usados na cláusula SET, REMOVE, INSERT INTO ou WHERE devem ser declarados na cláusula FROM. 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 FROM usando a palavra-chave BY. 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.

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.

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

Coleções aninhadas

Embora você possa executar uma DML instrução somente em uma única tabela, você pode especificar coleções aninhadas nos documentos dessa tabela como fontes adicionais. Cada alias que você declara para uma coleção aninhada pode ser usado na cláusula WHERE, SET, INSERT INTO ou cláusula REMOVE.

Por exemplo, as origens FROM da instrução a seguir incluem a tabela VehicleRegistration e a estrutura aninhada Owners.SecondaryOwners.

FROM VehicleRegistration r, @r.Owners.SecondaryOwners o WHERE r.VIN = '1N4AL11D75C109151' AND o.PersonId = 'abc123' SET o.PersonId = 'def456'

Este exemplo atualiza o elemento específico da lista SecondaryOwners que tem um PersonId de 'abc123' dentro do documento VehicleRegistration que tem um VIN de '1N4AL11D75C109151'. Essa expressão permite especificar um elemento de uma lista por seu valor em vez de seu índice.

Valor de retorno

documentId: o ID exclusivo de cada documento que você atualizou ou excluiu.

Exemplos

Modifica um elemento em um documento. Se o elemento não existir, ele será inserido.

FROM Vehicle AS v WHERE v.VIN = '1N4AL11D75C109151' AND v.Color = 'Silver' SET v.Color = 'Shiny Gray'

Modifica ou insere um elemento e um filtro no campo de metadados id do documento atribuído pelo sistema.

FROM Vehicle AS v BY v_id WHERE v_id = 'documentId' SET v.Color = 'Shiny Gray'

Modifica o campo PersonId do primeiro elemento na lista Owners.SecondaryOwners em um documento.

FROM VehicleRegistration AS r WHERE r.VIN = '1N4AL11D75C109151' SET r.Owners.SecondaryOwners[0].PersonId = 'abc123'

Remove um elemento existente em um documento.

FROM Person AS p WHERE p.GovId = '111-22-3333' REMOVE p.Address

Remove um documento inteiro de uma tabela.

FROM Person AS p WHERE p.GovId = '111-22-3333' REMOVE p

Remove o primeiro elemento da lista Owners.SecondaryOwners em um documento na tabela VehicleRegistration.

FROM VehicleRegistration AS r WHERE r.VIN = '1N4AL11D75C109151' REMOVE r.Owners.SecondaryOwners[0]

Insere {'Mileage':26500} como um par nome-valor de nível superior em um documento na tabela Vehicle.

FROM Vehicle AS v WHERE v.VIN = '1N4AL11D75C109151' INSERT INTO v VALUE 26500 AT 'Mileage'

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.

FROM VehicleRegistration AS r WHERE r.VIN = '1N4AL11D75C109151' INSERT INTO r.Owners.SecondaryOwners VALUE { 'PersonId' : 'abc123' }

Insira {'PersonId':'abc123'} como o primeiro elemento na lista Owners.SecondaryOwners existente em um documento.

FROM VehicleRegistration AS r WHERE r.VIN = '1N4AL11D75C109151' INSERT INTO r.Owners.SecondaryOwners VALUE {'PersonId' : 'abc123'} AT 0

Anexe vários pares de nome-valor à lista Owners.SecondaryOwners existente em um documento.

FROM VehicleRegistration AS r WHERE r.VIN = '1N4AL11D75C109151' INSERT INTO r.Owners.SecondaryOwners << {'PersonId' : 'abc123'}, {'PersonId' : 'def456'} >>

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: