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 instrucción que comienza con FROM es una extensión PartiQL que permite insertar y eliminar elementos específicos de un documento. También puede usar esta instrucción para actualizar los elementos existentes en un documento, de forma similar al comando UPDATE.

nota

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

Sintaxis

FROM-INSERT

Inserte un elemento nuevo en un documento existente. Para insertar un documento nuevo de nivel superior en una tabla, debe utilizar INSERT.

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

FROM-REMOVE

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

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

FROM-SET

Actualice uno o más elementos de un documento. Si un elemento no existe, se inserta. Esta es semánticamente la misma que la sintaxis UPDATE tradicional.

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

Parámetros

table_name

Nombre de la tabla de usuario que contiene los datos que se van a modificar. Las instrucciones de DML solo se admiten en la vista de usuario predeterminada. Cada instrucción 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 se extiende a lo largo de una tabla que se va a modificar. Todos los alias de tabla que se utilizan en la cláusula SET, REMOVE, INSERT INTO o WHERE deben declararse en la cláusula FROM. La palabra clave AS es opcional.

BY id_alias

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

WHERE condition

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

nota

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

element

Elemento del documento que se va a crear o modificar.

data

Un nuevo valor para el elemento.

AT key_name

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

Colecciones anidadas

Si bien puede ejecutar una instrucción DML solo en una tabla, puede especificar colecciones anidadas dentro de los documentos de esa tabla como orígenes adicionales. Cada alias que declare para una colección anidada se puede usar en la cláusula WHERE y en la cláusula SET, INSERT INTO o REMOVE.

Por ejemplo, los orígenes FROM de la siguiente instrucción incluyen tanto la tabla VehicleRegistration como la estructura Owners.SecondaryOwners 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 la lista SecondaryOwners que tiene un PersonId de 'abc123' dentro del documento VehicleRegistration que tiene un VIN 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 ha actualizado o eliminado.

Ejemplos

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

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

Modificar o insertar un elemento y filtrar en el campo de metadatos del id del documento asignado por el sistema.

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

Modificar el campo PersonId del primer elemento de la lista Owners.SecondaryOwners dentro de un documento.

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

Insertar un elemento existente en un documento.

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

Eliminar un documento completo de una tabla.

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

Eliminar el primer elemento de la lista Owners.SecondaryOwners dentro de un documento en la tabla VehicleRegistration.

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

Insertar {'Mileage':26500} como un par nombre-valor de nivel superior dentro de un documento de la tabla Vehicle.

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

Añadir {'PersonId':'abc123'} como un par nombre-valor en el campo Owners.SecondaryOwners de un documento de la tabla VehicleRegistration. Tenga en cuenta que Owners.SecondaryOwners debe existir ya y debe ser un tipo de datos de lista para que esta instrucción sea válida. De lo contrario, la palabra clave AT es obligatoria en la cláusula INSERT INTO.

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

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

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

Añadir varios pares de nombre-valor a la lista Owners.SecondaryOwners 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 con el controlador

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