Insertion ou fusion d'entité
Réduire la table des matières
Développer la table des matières
Cet article a fait l’objet d’une traduction automatique. Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez également afficher le texte anglais dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte traduit.
Traduction
Anglais

Insertion ou fusion d'entité

 

Le Insert Or Merge Entity opération met à jour une entité existante ou insère une nouvelle entité si elle n'existe pas dans la table. Étant donné que cette opération peut insérer ou mettre à jour une entité, il est également appelé un upsert opération.

Le Insert Or Merge Entity demande peut être construite comme suit. HTTPS est recommandé. Remplacez les valeurs suivantes par les vôtres :

  • myaccount avec le nom de votre compte de stockage

  • mytable avec le nom de votre table.

  • myPartitionKey et myRowKey avec le nom de la clé de partition et de la clé de ligne de l'entité mise à jour

Méthode

URI de demande

Version HTTP

MERGE

https://myaccount.table.core.windows.net/mytable(PartitionKey='myPartitionKey', RowKey='myRowKey')

HTTP/1.1

Lorsque vous élaborez une demande pour le service de stockage émulé, spécifiez le nom d'hôte de l'émulateur et le port de service Table sous la forme 127.0.0.1:10002, suivi du nom de compte de stockage émulé.

Méthode

URI de demande

Version HTTP

MERGE

http://127.0.0.1:10002/devstoreaccount1/mytable(PartitionKey='myPartitionKey', RowKey='myRowKey')

HTTP/1.1

Le service Table dans l'émulateur de stockage et le service Table de Windows® Azure™ diffèrent sur plusieurs points. Pour plus d'informations, consultez différences entre l'émulateur de stockage et les Services de stockage Azure.

Le tableau suivant décrit les en-têtes de demande obligatoires ou facultatifs.

En-tête de demande

Description

Authorization

Obligatoire. Spécifie le schéma d'authentification, le nom du compte et la signature. Pour plus d'informations, consultez Authentification pour les services Azure Storage.

Masquer ou restaurer les mises à jour

Obligatoire. Spécifie le temps universel coordonné (UTC) pour la demande. Pour plus d'informations, consultez Authentification pour les services Azure Storage.

x-ms-version

Obligatoire. Version du 18/08/2011 ou versions ultérieures. Spécifie la version de l'opération à utiliser pour cette demande. Pour plus d'informations, consultez Contrôle de version des Services de stockage Azure.

Content-Type

Obligatoire. Spécifie le type de contenu de la charge utile. Les valeurs possibles sont application/atom+xml et application/json.

Pour plus d'informations sur les types de contenu valides, consultez Format de charge utile pour les opérations du service Table.

Content-Length

Obligatoire. Longueur du corps de la demande.

x-ms-client-request-id

Facultatif. Fournit une valeur opaque générée par le client avec une limite de caractère de 1 Ko enregistrée dans les journaux d'analyse lorsque la journalisation de l'analyse de stockage est activée. L'utilisation de cet en-tête est fortement recommandée pour une corrélation des activités du côté client avec les requêtes reçues par le serveur. Pour plus d'informations, consultez À propos de la journalisation Storage Analytics et journalisation Azure : à l'aide de journaux pour suivre les demandes de stockage.

Le Insert Or Merge Entity opération envoie l'entité à insérer en tant que jeu d'entités OData, qui peut être un Atom ou JSON de charge utile. Pour plus d'informations, consultez Insertion et mise à jour d'entités.

La réponse inclut un code d'état HTTP et un ensemble d'en-têtes de réponse.

Une opération réussie retourne le code d'état 204 (No Content).

Pour plus d'informations sur les codes d'état, consultez Codes d'erreur et d'état et Codes d'erreur de service de Table.

Cette réponse comprend les en-têtes suivants. La réponse peut aussi inclure des en-têtes HTTP standard supplémentaires. Tous les en-têtes standard sont conformes à la spécification du protocole HTTP/1.1.

En-tête de réponse

Description

ETag

ETag pour l'entité.

x-ms-request-id

Cet en-tête identifie de façon unique la demande qui a été effectuée et peut être utilisé pour résoudre les problèmes de la demande. Pour plus d'informations, consultez Dépannage des opérations d'API.

x-ms-version

Indique la version du service de Table utilisée pour exécuter la demande. Cet en-tête est renvoyé pour les demandes effectuées avec la version 2009-09-19 ou une version ultérieure.

Date

Une valeur de date/heure UTC générée par le service qui indique le moment auquel la réponse a été initiée.

Cette opération peut être exécutée par le propriétaire du compte et par toute personne qui dispose d'une signature d'accès partagé qui a l'autorisation d'exécuter cette opération.

Atom : Voici un exemple de demande Atom et de réponse :

MERGE https://myaccount.table.core.windows.net/mytable(PartitionKey='myPartitionKey',RowKey='myRowKey')

La demande est envoyée avec les en-têtes suivants :

x-ms-version: 2013-08-15 Accept: application/atom+xml,application/xml Accept-Charset: UTF-8 Content-Type: application/atom+xml x-ms-date: Tue, 12 Nov 2013 18:10:24 GMT Authorization: SharedKeyLite myaccount:u0sWZKmjBD1B7LY/CwXWCnHdqK4B1P4z8hKy9SVW49o= Content-Length: 1135 DataServiceVersion: 1.0;NetFx MaxDataServiceVersion: 2.0;NetFx

La demande est envoyée avec le corps XML suivant :

<?xml version="1.0" encoding="utf-8"?> <entry xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" xmlns="http://www.w3.org/2005/Atom"> <title /> <updated>2013-11-12T18:09:37.168836Z</updated> <author> <name /> </author> <id>https://myaccount.table.core.windows.net/mytable(PartitionKey='mypartitionkey',RowKey='myrowkey')</id> <content type="application/xml"> <m:properties> <d:Address>Santa Clara</d:Address> <d:Age m:type="Edm.Int32">23</d:Age> <d:AmountDue m:type="Edm.Double">200.23</d:AmountDue> <d:CustomerCode m:type="Edm.Guid">c9da6455-213d-42c9-9a79-3e9149a57833</d:CustomerCode> <d:CustomerSince m:type="Edm.DateTime">2008-07-10T00:00:00Z</d:CustomerSince> <d:IsActive m:type="Edm.Boolean">false</d:IsActive> <d:NumOfOrders m:type="Edm.Int64">255</d:NumOfOrders> <d:PartitionKey>mypartitionkey</d:PartitionKey> <d:RowKey>myrowkey1</d:RowKey> </m:properties> </content> </entry>

Une fois la demande envoyée, la réponse suivante est renvoyée :

HTTP/1.1 204 No Content Connection: Keep-Alive x-ms-request-id: 2c085f8f-11a4-4e1d-bd49-82c6bd87649d Content-Length: 0 Cache-Control: no-cache Date: Tue, 12 Nov 2013 18:12:54 GMT ETag: W/"0x5B168C7B6E589D2" DataServiceVersion: 1.0;NetFx MaxDataServiceVersion: 2.0;NetFx Server: Windows-Azure-Table/1.0 Microsoft-HTTPAPI/2.0

JSON : vous trouverez ci-dessous un exemple de demande et de réponse JSON :

MERGE https://myaccount.table.core.windows.net/mytable(PartitionKey='myPartitionKey',RowKey='myRowKey')

La demande est envoyée avec les en-têtes suivants :

x-ms-version: 2013-08-15 Content-Type: application/json x-ms-date: Tue, 30 Aug 2013 18:10:24 GMT Authorization: SharedKeyLite myaccount:u0sWZKmjBD1B7LY/CwXWCnHdqK4B1P4z8hKy9SVW49o= Content-Length: 1135 DataServiceVersion: 3.0;NetFx MaxDataServiceVersion: 3.0;NetFx

La demande est envoyée avec le corps JSON suivant :

{ "Address":"Santa Clara", "Age":23, "AmountDue":200.23, "CustomerCode@odata.type":"Edm.Guid", "CustomerCode":"c9da6455-213d-42c9-9a79-3e9149a57833", "CustomerSince@odata.type":"Edm.DateTime", "CustomerSince":"2008-07-10T00:00:00", "IsActive":false, "NumberOfOrders@odata.type":"Edm.Int64", "NumberOfOrders":"255", "PartitionKey":"mypartitionkey", "RowKey":"myrowkey" }

Une fois la demande envoyée, la réponse suivante est renvoyée :


HTTP/1.1 204 No Content Connection: Keep-Alive x-ms-request-id: 2c085f8f-11a4-4e1d-bd49-82c6bd87649d Content-Length: 0 Cache-Control: no-cache Date: Tue, 30 Aug 2013 18:12:54 GMT ETag: W/"0x5B168C7B6E589D2" DataServiceVersion: 3.0;NetFx MaxDataServiceVersion: 3.0;NetFx Server: Windows-Azure-Table/1.0 Microsoft-HTTPAPI/2.0

Le Insert Or Merge Entity opération utilise le verbe MERGE et doit être appelée à l'aide de la version 2011-08-18 ou ultérieure. De plus, elle ne doit pas utiliser l'en-tête If-Match. Ces attributs différencient cette opération à partir de la Update Entity opération, bien que le corps de demande est identique pour les deux opérations.

Si le Insert Or Merge Entity opération est utilisée pour fusionner une entité, toutes les propriétés de l'entité précédente seront conservées si la demande de ne pas définir ou les inclure. Les propriétés avec une valeur null seront également conservées.

Lorsque vous appelez le Insert or Merge Entity opération, vous devez spécifier des valeurs pour les PartitionKey et RowKey Propriétés système. Ces propriétés forment la clé primaire et doivent être uniques au sein de la table.

À la fois les PartitionKey et RowKey les valeurs doivent être des valeurs de chaîne ; chaque valeur de clé peut être jusqu'à 64 Ko. Si vous utilisez une valeur entière pour la valeur de clé, vous devez convertir l'entier en une chaîne de largeur fixe, car elles sont triées de façon canonique. Par exemple, vous devez convertir la valeur 1 à 0000001 pour garantir un tri correct.

Pour taper explicitement une propriété, spécifiez le type OData approprié en définissant le m:type attribut au sein de la définition de propriété dans le flux Atom. Pour plus d'informations sur les propriétés de typage, consultez Insertion et mise à jour d'entités.

Une application qui peut authentifier et envoyer une demande HTTP MERGE peut insérer ou mettre à jour une entité.

Pour plus d'informations sur l'exécution upsert par lots, consultez Exécution de Transactions de groupe d'entités.

Afficher:
© 2016 Microsoft