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
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.
Tópicos
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
[ AStable_alias
] [ BYid_alias
] [ WHEREcondition
] INSERT INTOelement
VALUEdata
[ ATkey_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
[ AStable_alias
] [ BYid_alias
] [ WHEREcondition
] REMOVEelement
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
[ AStable_alias
] [ BYid_alias
] [ WHEREcondition
] SETelement
=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
ouWHERE
devem ser declarados na cláusulaFROM
. A palavra-chaveAS
é 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áusulaFROM
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. - 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 valorAT
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: