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.
FROMcomando (INSERTREMOVE, oSET) en Amazon QLDB
importante
Aviso de fin del soporte: los clientes actuales podrán utilizar Amazon QLDB hasta que finalice el soporte, el 31 de julio de 2025. Para obtener más información, consulte Migración de un Amazon QLDB Ledger a Amazon Aurora SQL Postgre
En AmazonQLDB, una declaración que comienza con FROM
es una extensión PartiQL que te 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 Cómo empezar con el modo de permisos estándar en Amazon QLDB.
Temas
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
[ AStable_alias
] [ BYid_alias
] [ WHEREcondition
] INSERT INTOelement
VALUEdata
[ ATkey_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
[ AStable_alias
] [ BYid_alias
] [ WHEREcondition
] REMOVEelement
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
[ AStable_alias
] [ BYid_alias
] [ WHEREcondition
] SETelement
=data
[,element
=data
, ... ]
Parámetros
table_name
-
Nombre de la tabla de usuario que contiene los datos que se van a modificar. DMLLas declaraciones 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
oWHERE
deben declararse en la cláusulaFROM
. La palabra claveAS
es opcional. - BY
id_alias
-
(Opcional) Un alias definido por el usuario que se enlaza con el campo de metadatos
id
de cada documento del conjunto de resultados. El alias debe declararse en la cláusulaFROM
mediante la palabra claveBY
. 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 valorAT
en una posición específica dentro de un documento.
Colecciones anidadas
Si bien puede ejecutar una DML declaración solo en una 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 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 el 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 declaración mediante programación mediante el QLDB controlador, consulte los siguientes tutoriales en Introducción al controlador:
-
Java: Tutorial de inicio rápido | Referencia de libro de recetas
-
.NET: Tutorial de inicio rápido | Referencia de libro de recetas
-
Go: Tutorial de inicio rápido | Referencia de libro de recetas
-
Node.js: Tutorial de inicio rápido | Referencia de libro de recetas
-
Python: Tutorial de inicio rápido | Referencia de libro de recetas