Merge Entity
L'opération Merge Entity
met à jour une entité existante en mettant à jour les propriétés de l'entité. Cette opération ne remplace pas l’entité existante, comme l’opération De mise à jour de l’entité .
Requête
Vous pouvez construire la Merge Entity
requête comme suit. HTTPS est recommandé. Remplacez myaccount par le nom de votre compte de stockage et mytable par le nom de votre table. Remplacez myPartitionKey et myRowKey par le nom de la clé de partition et de la clé de ligne identifiant l’entité à mettre à jour.
Méthode | URI de demande | Version HTTP |
---|---|---|
MERGE |
https://myaccount.table.core.windows.net/mytable(PartitionKey='myPartitionKey', RowKey='myRowKey') |
HTTP/1.1 |
L’adresse de l’entité à mettre à jour peut prendre plusieurs formes sur l’URI de la demande. Pour plus d’informations, consultez le protocole OData .
URI du service de stockage émulé
Lorsque vous effectuez une demande auprès du service de stockage émulé, spécifiez le nom d’hôte de l’émulateur et le port de stockage Table Azure en tant que 127.0.0.1:10002
, suivis du nom du 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 stockage table dans l’émulateur de stockage diffère du stockage Table Azure de plusieurs façons. Pour plus d’informations, consultez Différences entre l’émulateur de stockage et les services de stockage Azure.
Paramètres URI
Vous pouvez spécifier les paramètres supplémentaires suivants sur l’URI de requête.
Paramètre | Description |
---|---|
timeout |
facultatif. Le paramètre timeout est exprimé en secondes. Pour plus d’informations, consultez Définition des délais d’expiration pour les opérations de stockage table. |
En-têtes de requête
Le tableau suivant décrit les en-têtes de demande obligatoires ou facultatifs.
En-tête de requête | Description |
---|---|
Authorization |
Obligatoire. Spécifie le schéma d’autorisation, le nom du compte et la signature. Pour plus d’informations, consultez Autoriser les requêtes auprès du Stockage Azure. |
Date ou x-ms-date |
Obligatoire. Spécifie la date/heure en temps universel coordonné (UTC) pour la requête. Pour plus d’informations, consultez Autoriser les requêtes auprès du Stockage Azure. |
x-ms-version |
Optionnel. Spécifie la version de l'opération à utiliser pour cette demande. Pour plus d'informations, consultez la page Contrôle de version pour les services de Stockage Microsoft 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 de stockage table. |
Content-Length |
Obligatoire. Longueur du corps de la demande. |
If-Match |
Obligatoire. Le client peut spécifier pour ETag l’entité sur la demande, afin de comparer avec le ETag géré par le service à des fins d’accès concurrentiel optimiste. L’opération de mise à jour est effectuée uniquement si le ETag envoyé par le client correspond à la valeur gérée par le serveur. Cette correspondance indique que l’entité n’a pas été modifiée depuis qu’elle a été récupérée par le client.Pour forcer une mise à jour sans condition, définissez If-Match au caractère générique (*). |
x-ms-client-request-id |
Optionnel. Fournit une valeur opaque générée par le client avec une limite de caractères de 1 kibioctet (Kio) enregistrée dans les journaux lors de la configuration de la journalisation. Nous vous recommandons vivement d’utiliser cet en-tête pour mettre en corrélation les activités côté client avec les demandes que le serveur reçoit. Pour plus d’informations, consultez Surveiller le Stockage Table Azure. |
Corps de la demande
L’opération Merge Entity
envoie l’entité à mettre à jour en tant qu’entité OData
, qui peut être un flux JSON ou Atom. Pour plus d’informations, consultez Insertion et mise à jour d’entités.
response
La réponse inclut un code d'état HTTP et un ensemble d'en-têtes de réponse.
Code d’état
Une opération réussie renvoie le code d'état 204 (Aucun contenu). Pour plus d’informations sur les codes status, consultez Codes d’état et d’erreur et Codes d’erreur de stockage table.
En-têtes de réponse
La réponse de l'opération inclut les en-têtes suivants. La réponse peut également 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 manière unique la requête qui a été effectuée et peut être utilisé pour la résolution des problèmes de la demande. Pour plus d’informations, consultez Résolution des problèmes liés aux opérations d’API. |
x-ms-version |
Indique la version de Stockage Table utilisée pour exécuter la requête. Cet en-tête est renvoyé pour les demandes effectuées avec la version 2009-09-19 ou une version ultérieure. |
Date |
Valeur de date/heure UTC qui indique l’heure à laquelle la réponse a été lancée. Le service génère cette valeur. |
x-ms-client-request-id |
Vous pouvez utiliser cet en-tête pour résoudre les problèmes liés aux demandes et aux réponses correspondantes. La valeur de cet en-tête est égale à la valeur de l’en-tête x-ms-client-request-id , s’il est présent dans la requête. La valeur est au maximum de 1 024 caractères ASCII visibles. Si l’en-tête x-ms-client-request-id n’est pas présent dans la demande, cet en-tête ne sera pas présent dans la réponse. |
Response body
Aucun.
Exemple de réponse
Response Status:
HTTP/1.1 204 No Content
Response Headers:
Connection: Keep-Alive
Content-Length: 0
Cache-Control: no-cache
Date: Mon, 25 Nov 2013 19:06:47 GMT
ETag: W/"0x5B168C7B6E589D2"
x-ms-version: 2013-08-15
DataServiceVersion: 1.0;NetFx
MaxDataServiceVersion: 2.0;NetFx
Server: Windows-Azure-Table/1.0 Microsoft-HTTPAPI/2.0
Autorisation
Le propriétaire du compte peut effectuer cette opération. En outre, toute personne disposant d’une signature d’accès partagé qui est autorisée à effectuer cette opération peut le faire.
Notes
Le stockage table ne rend null
pas les valeurs des propriétés persistantes. La spécification d’une propriété avec une null
valeur revient à omettre cette propriété dans la requête. Seules les propriétés avec des valeurs non-sontnull
mises à jour par l’opération Merge Entity
.
Vous ne pouvez pas supprimer une propriété avec une Merge Entity
opération. Si vous devez le faire, remplacez l’entité en appelant l’opération Mettre à jour l’entité .
Lorsque vous fusionnez une entité, vous devez spécifier les propriétés système et dans RowKey
le PartitionKey
cadre de l’opération de fusion.
La propriété d’une entité fournit une concurrence optimiste par défaut pour les opérations de ETag
fusion. La ETag
valeur est opaque et ne doit pas être lue ni fondée sur. Avant qu’une opération de fusion ne se produise, le Stockage Table vérifie que la valeur actuelle ETag
de l’entité est identique à la ETag
valeur incluse dans la requête dans l’en-tête If-Match
. Si les valeurs sont identiques, le Stockage Table détermine que l’entité n’a pas été modifiée depuis sa récupération et que l’opération de fusion se poursuit.
Si l’entité diffère de ETag
celle spécifiée avec la demande de fusion, l’opération de fusion échoue avec status code 412 (échec de la condition préalable). Cette erreur indique que l'entité a été modifiée sur le serveur depuis qu'elle a été récupérée. Pour résoudre cette erreur, récupérez l’entité et rééditez la demande.
Pour forcer une opération de fusion sans condition, définissez la valeur de l'en-tête If-Match
au caractère générique (*) dans la demande. Le passage de cette valeur à l’opération remplace l’accès concurrentiel optimiste par défaut et ignore toute incompatibilité de ETag
valeurs.
Si l’en-tête If-Match
est manquant dans la requête dans la version 2011-08-18 et ultérieure, le service effectue une opération d’insertion ou de fusion d’entité (upsert). Dans les versions antérieures à 2011-08-18, le service retourne status code 400 (Demande incorrecte).
Toute application qui peut autoriser et envoyer une HTTP MERGE
demande peut fusionner une entité. Pour plus d’informations sur la construction d’une requête à l’aide HTTP MERGE
de , consultez Ajouter, modifier et supprimer des entités.
Pour plus d’informations sur l’exécution d’opérations de fusion par lots, consultez Exécution de transactions de groupe d’entités.
Voir aussi
Update Entity
Autoriser les demandes dans le Stockage Azure
Définition des en-têtes de version du service de données OData
Codes d’état et d’erreur
Codes d’erreur stockage table