Insert Entity

L'opération Insert Entity insère une nouvelle entité dans une table.

Requête

Vous pouvez construire la Insert 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.

Méthode URI de demande Version HTTP
POST https://myaccount.table.core.windows.net/mytable HTTP/1.1

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
POST http://127.0.0.1:10002/devstoreaccount1/mytable HTTP/1.1

Le stockage table dans l’émulateur de stockage diffère de 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 facultatif. 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 (versions antérieures à 2015-12-11 uniquement), 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.
Accept facultatif. Spécifie le type de contenu accepté de la charge utile de réponse. Les valeurs possibles sont les suivantes :

- application/atom+xml (versions antérieures à 2015-12-11 uniquement)
- application/json;odata=nometadata
- application/json;odata=minimalmetadata
- application/json;odata=fullmetadata

Pour plus d’informations, consultez Format de charge utile pour les opérations de stockage table.
Prefer facultatif. Indique si la réponse doit inclure l'entité insérée dans la charge utile. Les valeurs possibles sont return-no-content et return-content. Pour plus d’informations, consultez Définition de l’en-tête Prefer pour gérer l’écho de réponse lors des opérations d’insertion.
x-ms-client-request-id facultatif. 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 Insert Entity envoie l’entité à insérer en tant qu’entité OData , qui est un flux JSON ou Atom. Pour plus d’informations, consultez Insertion et mise à jour d’entités.

Notes

JSON est le format de charge utile recommandé et est le seul format pris en charge pour la version 2015-12-11 et ultérieure.

JSON (version 2013-08-15 et ultérieures)

Voici un exemple de corps de requête JSON pour l’opération Insert Entity :

{  
   "Address":"Mountain View",  
   "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":true,  
   "NumberOfOrders@odata.type":"Edm.Int64",  
   "NumberOfOrders":"255",  
   "PartitionKey":"mypartitionkey",  
   "RowKey":"myrowkey"  
}  

Flux Atom (versions antérieures à 2015-12-11)

Voici un exemple de corps de requête Atom pour l’opération Insert Entity .

<?xml version="1.0" encoding="utf-8" standalone="yes"?>  
<entry xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" xmlns="https://www.w3.org/2005/Atom">  
  <title />  
  <updated>2013-09-18T23:46:19.3857256Z</updated>  
  <author>  
    <name />  
  </author>  
  <id />  
  <content type="application/xml">  
    <m:properties>  
      <d:Address>Mountain View</d:Address>  
      <d:Age m:type="Edm.Int32">23</d:Age>  
      <d:AmountDue m:type="Edm.Double">200.23</d:AmountDue>  
      <d:BinaryData m:type="Edm.Binary" m:null="true" />  
      <d:CustomerCode m:type="Edm.Guid">c9da6455-213d-42c9-9a79-3e9149a57833</d:CustomerCode>  
      <d:CustomerSince m:type="Edm.DateTime">2008-07-10T00:00:00</d:CustomerSince>  
      <d:IsActive m:type="Edm.Boolean">true</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>  

response

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

Code d’état

Le code d'état dépend de la valeur de l'en-tête Prefer. Si l'en-tête Prefer a la valeur return-no-content, une opération réussie renvoie le code d'état 204 (No Content). Si l’en-tête Prefer n’est pas spécifié ou s’il est défini sur return-content, une opération réussie retourne status code 201 (Created). Pour plus d’informations, consultez Définition de l’en-tête Prefer pour gérer l’écho de réponse lors des opérations d’insertion.

Pour plus d’informations sur les codes status, consultez Codes d’état et d’erreur et Codes d’erreur du service de table.

En-têtes de réponse

Cette réponse comprend 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
x-ms-request-id Identifie de manière unique la requête qui a été effectuée et peut être utilisée 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.
ETag ETag pour l’entité .
Preference-Applied Indique si l'en-tête de demande Prefer a été respecté. Si la réponse n’inclut pas cet en-tête, l’en-tête n’a Prefer pas été respecté. Si cet en-tête est renvoyé, sa valeur est return-content ou return-no-content.

Pour plus d’informations, consultez Définition de l’en-tête Prefer pour gérer l’écho de réponse lors des opérations d’insertion.
Content-Type Indique le type de contenu de la charge utile. La valeur de cet en-tête dépend de la valeur spécifiée pour l'en-tête de demande Accept. Les valeurs possibles sont les suivantes :

- application/atom+xml
- application/json;odata=nometadata
- application/json;odata=minimalmetadata
- application/json;odata=fullmetadata

Pour plus d’informations sur les types de contenu, consultez Format de charge utile pour les opérations de stockage table.
x-ms-client-request-id Peut être utilisé 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, il ne sera pas présent dans la réponse.

Response body

Si la demande inclut l'en-tête Prefer avec la valeur return-no-content, aucun corps de réponse n'est renvoyé. Sinon, le corps de la réponse est un ensemble d’entités OData .

Notes

JSON est le format de charge utile recommandé et est le seul format pris en charge pour la version 2015-12-11 et ultérieure.

JSON (version 2013-08-15 et ultérieures)

Voici un exemple de réponse JSON pour chaque niveau de métadonnées :

Aucune métadonnées :

{  
   "PartitionKey":"mypartitionkey",  
   "RowKey":"myrowkey",  
   "Timestamp":"2013-08-22T01:12:06.2608595Z",  
   "Address":"Mountain View",  
   "Age":23,  
   "AmountDue":200.23,  
   "CustomerCode":"c9da6455-213d-42c9-9a79-3e9149a57833",  
   "CustomerSince":"2008-07-10T00:00:00",  
   "IsActive":true,  
   "NumberOfOrders":"255"  
}  
  

Métadonnées minimales :

{  
   "odata.metadata":"https://myaccount.table.core.windows.net/Customer/$metadata#Customers/@Element",  
   "PartitionKey":"mypartitionkey",  
   "RowKey":"myrowkey",  
   "Timestamp":"2013-08-22T01:12:06.2608595Z",  
   "Address":"Mountain View",  
   "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":true,  
   "NumberOfOrders@odata.type":"Edm.Int64",  
   "NumberOfOrders":"255"  
}  
  

Métadonnées complètes :

{  
   "odata.metadata":"https://myaccount.table.core.windows.net/Customer/$metadata#Customers/@Element",  
   "odata.type":"myaccount.Customers",  
   "odata.id":" https://myaccount.table.core.windows.net/Customers(PartitionKey='mypartitionkey',RowKey='myrowkey')",  
   "odata.etag":"W/\"0x5B168C7B6E589D2\"",  
   "odata.editLink":"Customers(PartitionKey='mypartitionkey',RowKey='myrowkey')",  
   "PartitionKey":"mypartitionkey",  
   "RowKey":"myrowkey",  
   "Timestamp@odata.type":"Edm.DateTime",  
   "Timestamp":"2013-08-22T01:12:06.2608595Z",  
   "Address":"Mountain View",  
   "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":true,  
   "NumberOfOrders@odata.type":"Edm.Int64",  
   "NumberOfOrders":"255"  
}  

Flux Atom (versions antérieures à 2015-12-11)

Voici un exemple de corps de réponse Atom pour l'opération Insert Entity.

<?xml version="1.0" encoding="utf-8" standalone="yes"?>  
<entry xml:base="https://myaccount.table.core.windows.net/" xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" m:etag="W/"0x5B168C7B6E589D2"" xmlns="https://www.w3.org/2005/Atom">  
  <id>https://myaccount.table.core.windows.net/mytable(PartitionKey='mypartitionkey',RowKey='myrowkey1')</id>  
  <title type="text"></title>  
  <updated>2008-09-18T23:46:19.3857256Z</updated>  
  <author>  
    <name />  
  </author>  
  <link rel="edit" title="mytable" href="mytable(PartitionKey='mypartitionkey',RowKey='myrowkey1')" />  
  <category term="myaccount.Tables" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" />  
  <content type="application/xml">  
    <m:properties>  
      <d:PartitionKey>mypartitionkey</d:PartitionKey>  
      <d:RowKey>myrowkey1</d:RowKey>  
      <d:Timestamp m:type="Edm.DateTime">2008-09-18T23:46:19.4277424Z</d:Timestamp>  
      <d:Address>Mountain View</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:00</d:CustomerSince>  
      <d:IsActive m:type="Edm.Boolean">true</d:IsActive>  
      <d:NumOfOrders m:type="Edm.Int64">255</d:NumOfOrders>  
    </m:properties>  
  </content>  
</entry>  

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.

Remarques

Lorsque vous insérez une entité dans une table, vous devez spécifier des valeurs pour les PartitionKey propriétés système et RowKey . Ensemble, ces propriétés forment la clé primaire et doivent être uniques dans la table.

PartitionKey Les valeurs et doivent RowKey être des valeurs de chaîne. PartitionKey les valeurs et RowKey peuvent avoir jusqu’à 1 024 caractères. Si vous utilisez une valeur entière pour la valeur de clé, vous devez convertir l’entier en chaîne à largeur fixe, car ils sont triés canoniquement. Par exemple, convertissez la valeur 1 en 0000001, pour garantir un tri correct.

Pour taper explicitement une propriété, spécifiez le type de données approprié OData en définissant l’attribut m:type dans la définition de propriété dans le flux Atom. Pour plus d’informations sur la saisie des propriétés, consultez Insertion et mise à jour d’entités.

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.

Pour plus d’informations sur l’exécution d’opérations d’insertion par lots, consultez Exécution de transactions de groupe d’entités.

Voir aussi

Autoriser les demandes dans le Stockage Azure
Définition des en-têtes de version du service de données OData
Insertion et mise à jour d’entités
Codes d’état et d’erreur
Codes d’erreur stockage table