Commande FROM (INSERT, REMOVE ou SET) dans Amazon QLDB - Amazon Quantum Ledger Database (Amazon QLDB)

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Commande FROM (INSERT, REMOVE ou SET) dans Amazon QLDB

Dans Amazon QLDB, une instruction qui commence parFROM est une extension PartiQL qui vous permet d'insérer et de supprimer des éléments spécifiques dans un document. Vous pouvez également utiliser cette instruction pour mettre à jour des éléments existants dans un document, de la même manière que laMISE A JOUR commande.

Note

Pour savoir comment contrôler l'accès afin d'exécuter cette commande PartiQL sur des tables spécifiques, consultezCommencer à utiliser le mode d'autorisation standard dans Amazon QLDB.

Syntaxe

À PARTIR DE L'INSERTION

Insérez un nouvel élément dans un document existant. Pour insérer un nouveau document de niveau supérieur dans un tableau, vous devez utiliserINSERT.

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

À PARTIR DE SUPPRIMER

Supprimez un élément existant dans un document ou supprimez l'intégralité d'un document de niveau supérieur. Cette dernière est sémantiquement identique à laDELETE syntaxe traditionnelle.

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

À PARTIR DU SET

Mettez à jour un ou plusieurs éléments d'un document. Si un élément n'existe pas, il est inséré. Du point de vue sémantique, c'est la même syntaxe que laMISE A JOUR syntaxe traditionnelle.

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

Paramètres

table_name

Nom de la table utilisateur contenant les données à modifier. Les instructions DML ne sont prises en charge que dans la vue utilisateur par défaut. Chaque instruction ne peut être exécutée que sur une seule table.

Dans cette clause, vous pouvez également inclure une ou plusieurs collections imbriquées dans la table spécifiée. Pour en savoir plus, consultez Collections imbriquées.

En tant que table_alias

(Facultatif) Alias défini par l'utilisateur qui couvre une table à modifier. Tous les alias de table utilisés dans laWHERE clauseSETREMOVE,INSERT INTO, ou doivent être déclarés dans laFROM clause. LeAS mot-clé est facultatif.

PAR id_alias

(Facultatif) Alias défini par l'utilisateur qui se lie au champ deid métadonnées de chaque document du jeu de résultats. L'alias doit être déclaré dans laFROM clause à l'aide duBY mot clé. Cela est utile lorsque vous souhaitez filtrer en fonction de l'ID du document tout en interrogeant la vue utilisateur par défaut. Pour plus d'informations, veuillez consulter Utilisation de la clause BY pour interroger l'ID du document.

WHERE condition

Critères de sélection des documents à modifier.

Note

Si vous omettez laWHERE clause, tous les documents de la table sont modifiés.

élément

Élément de document à créer ou à modifier.

data

Une nouvelle valeur pour l'élément.

Nom_clé AT

Un nom de clé à ajouter dans les documents à modifier. Vous devez spécifier le nom correspondantVALUE ainsi que le nom de la clé. Cela est nécessaire pour insérer une nouvelle valeur àAT une position spécifique dans un document.

Collections imbriquées

Bien que vous ne puissiez exécuter une instruction DML que sur une seule table, vous pouvez spécifier des collections imbriquées dans les documents de cette table en tant que sources supplémentaires. Chaque alias que vous déclarez pour une collection imbriquée peut être utilisé dans laWHERE clause et laREMOVE clauseSETINSERT INTO, ou.

Par exemple, lesFROM sources de l'instruction suivante incluent à la fois laVehicleRegistration table et laOwners.SecondaryOwners structure imbriquée.

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

Cet exemple met à jour l'élément spécifique de laSecondaryOwners liste qui possède unPersonId de'abc123' dans leVehicleRegistration document qui possède unVIN de'1N4AL11D75C109151'. Cette expression vous permet de spécifier un élément d'une liste par sa valeur plutôt que par son index.

Valeur renvoyée

documentId— L'identifiant unique de chaque document que vous avez mis à jour ou supprimé.

Exemples

Modifiez un élément dans un document. Si l'élément n'existe pas, il est inséré.

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

Modifiez ou insérez un élément et un filtre dans le champ deid métadonnées du document attribué par le système.

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

Modifiez lePersonId champ du premier élément de laOwners.SecondaryOwners liste dans un document.

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

Supprimez un élément existant dans un document.

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

Supprimer un document entier d'un tableau.

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

Supprimez le premier élément de laOwners.SecondaryOwners liste dans un document duVehicleRegistration tableau.

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

Insérez{'Mileage':26500} en tant que paire nom-valeur de niveau supérieur dans un document duVehicle tableau.

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

Ajoutez-le{'PersonId':'abc123'} sous forme de paire nom-valeur dans leOwners.SecondaryOwners champ d'un document duVehicleRegistration tableau. Notez qu'Owners.SecondaryOwnersil doit déjà exister et qu'il doit s'agir d'un type de données de liste pour que cette instruction soit valide. Dans le cas contraire, le mot cléAT est obligatoire dans laINSERT INTO clause.

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

Insérer en{'PersonId':'abc123'} tant que premier élément de laOwners.SecondaryOwners liste existante d'un document.

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

Ajoutez plusieurs paires nom-valeur à laOwners.SecondaryOwners liste existante d'un document.

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

Exécution par programmation à l'aide du pilote

Pour savoir comment exécuter cette instruction par programmation à l'aide du pilote QLDB, consultez les didacticiels suivants dans la section Prise en main du pilote :