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 de service de stockage émulé

Lorsque vous effectuez une requête auprès du service de stockage émulé, spécifiez le nom d’hôte de l’émulateur et le port Stockage Table Azure comme 127.0.0.1:10002, suivi 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 du stockage Table Azure de plusieurs manières. Pour plus d’informations, consultez Différences entre l’émulateur de stockage et les services 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 de 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 (versions antérieures application/atom+xml au 12-11-2015 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 Optionnel. 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 au 11-12-2015 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 Optionnel. 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 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 reçues par le serveur. 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 les versions 2015-12-11 et ultérieures.

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

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 demande 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 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 demande 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 demande. 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 pour ETag 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 demandes et les 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 demande. 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 les versions 2015-12-11 et ultérieures.

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

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 a l’autorisation d’effectuer cette opération peut le faire.

Notes

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.

Les valeurs et RowKey doivent être des PartitionKey valeurs de chaîne. Chaque valeur de clé peut atteindre 64 Kio. Si vous utilisez une valeur entière pour la valeur de clé, vous devez convertir l’entier en chaîne de 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 dans la m:type définition de propriété dans le flux Atom. Pour plus d’informations sur les propriétés de saisie, consultez Insertion et mise à jour d’entités.

Le stockage table ne rend null pas les valeurs des propriétés persistantes. Spécifier une propriété avec une null valeur équivaut à 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 à 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