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.
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.
Temas
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
[ AStable_alias
] [ BYid_alias
] [ WHEREcondition
] INSERT INTOelement
VALUEdata
[ ATkey_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
[ AStable_alias
] [ BYid_alias
] [ WHEREcondition
] REMOVEelement
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
[ AStable_alias
] [ BYid_alias
] [ WHEREcondition
] SETelement
=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 la
WHERE
cláusulaSET
REMOVE
INSERT 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 de
id
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 la
WHERE
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 correspondiente
VALUE
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áusulaSET
INSERT
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: