Comando FROM (INSERT, REMOVE o SET) en Amazon QLDB - Amazon Quantum Ledger Database (Amazon QLDB)

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Comando FROM (INSERT, REMOVE o SET) en Amazon QLDB

En Amazon QLDB, una sentencia que comienza conFROM es una extensión PartiQL que permite insertar y eliminar elementos específicos de un documento. También puede utilizar esta instrucción para actualizar los elementos existentes en un documento, de forma similar alUPDATE comando.

nota

Para obtener información sobre cómo controlar el acceso para ejecutar este comando de PartiQL en tablas específicas, consulteIntroducción al modo de permisos estándar en Amazon QLDB.

Sintaxis

DESDE-INSERTAR

Inserta un elemento nuevo en un documento existente. Para insertar un nuevo documento de nivel superior en una tabla, debe utilizarINSERT.

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

DESDE-ELIMINAR

Elimine un elemento existente de un documento o elimine todo un documento de nivel superior. Esta última es semánticamente la misma que laDELETE sintaxis tradicional.

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

DESDE SET

Actualiza uno o más elementos de un documento. Si un elemento no existe, se inserta. Semánticamente es igual a laUPDATE sintaxis tradicional.

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

Parámetros

table_name

El nombre de la tabla de usuario que contiene los datos que se van a modificar. Las sentencias DML solo se admiten en la vista de usuario predeterminada. Cada sentencia solo puede ejecutarse en una sola tabla.

En esta cláusula, también puede incluir una o más colecciones anidadas en la tabla especificada. Para obtener más información, consulte Colecciones anidadas.

AS table_alias

(Opcional) Un alias definido por el usuario que abarca una tabla que se va a modificar. Todos los alias de tabla que se utilizan en laWHERE cláusulaSETREMOVEINSERT INTO,, o deben declararse en laFROM cláusula. LaAS palabra clave es opcional.

DE id_alias

(Opcional) Un alias definido por el usuario que se enlaza al campo deid metadatos de cada documento del conjunto de resultados. El alias debe declararse en laFROM cláusula mediante laBY palabra clave. Esto resulta útil cuando desea filtrar el ID del documento mientras consulta la vista de usuario predeterminada. Para obtener más información, consulte Uso de la cláusula BY para consultar el ID del documento.

WHERE condition

Criterios de selección para los documentos que se van a modificar.

nota

Si omite laWHERE cláusula, se modificarán todos los documentos de la tabla.

elemento

Un elemento de documento que se va a crear o modificar.

data

Un nuevo valor para el elemento.

Nombre_clave AT

Un nombre de clave que se añadirá a los documentos que se van a modificar. Debe especificar el nombre correspondienteVALUE junto con el nombre de la clave. Esto es necesario para insertar un nuevo valor enAT una posición específica dentro de un documento.

Colecciones anidadas

Si bien solo puede ejecutar una sentencia DML en una sola tabla, puede especificar colecciones anidadas dentro de los documentos de esa tabla como fuentes adicionales. Cada alias que declare para una colección anidada se puede usar en laWHERE cláusula y en laREMOVE cláusulaSETINSERT INTO, or.

Por ejemplo, lasFROM fuentes de la siguiente declaración incluyen tanto laVehicleRegistration tabla como laOwners.SecondaryOwners estructura anidada.

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

En este ejemplo se actualiza el elemento específico de laSecondaryOwners lista que tiene unPersonId de'abc123' dentro delVehicleRegistration documento que tiene unVIN de'1N4AL11D75C109151'. Esta expresión permite especificar un elemento de una lista por su valor en lugar de por su índice.

Valor devuelto

documentId— El identificador único de cada documento que actualizaste o eliminaste.

Ejemplos

Modificar un elemento de un documento. Si el elemento no existe, se inserta.

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

Modifique o inserte un elemento y un filtro en el campo deid metadatos del documento asignado por el sistema.

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

Modifique elPersonId campo del primer elemento de laOwners.SecondaryOwners lista de un documento.

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

Elimina un elemento existente de un documento.

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

Elimina un documento completo de una tabla.

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

Elimine el primer elemento de laOwners.SecondaryOwners lista dentro de un documento de laVehicleRegistration tabla.

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

Insértelo{'Mileage':26500} como un par nombre-valor de nivel superior dentro de un documento de laVehicle tabla.

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

Añada{'PersonId':'abc123'} como un par nombre-valor en elOwners.SecondaryOwners campo de un documento de laVehicleRegistration tabla. Tenga en cuenta que yaOwners.SecondaryOwners debe existir y debe ser un tipo de datos de lista para que esta declaración sea válida. De lo contrario, la palabra claveAT es obligatoria en laINSERT INTO cláusula.

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

Insertar{'PersonId':'abc123'} como primer elemento de laOwners.SecondaryOwners lista existente dentro de un documento.

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

Añada varios pares de nombre-valor a laOwners.SecondaryOwners lista existente dentro de un documento.

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

Ejecución mediante programación mediante el controlador

Para aprender a ejecutar esta sentencia mediante programación con el controlador QLDB, consulte los siguientes tutoriales en Introducción al controlador: