Insert Entity

La operación Insert Entity inserta una nueva entidad en una tabla.

Request

Puede construir la Insert Entity solicitud como se indica a continuación. Se recomienda HTTPS. Reemplace myaccount por el nombre de la cuenta de almacenamiento y mytable por el nombre de la tabla.

Método URI de solicitud Versión de HTTP
POST https://myaccount.table.core.windows.net/mytable HTTP/1.1

URI del servicio de almacenamiento emulado

Al realizar una solicitud en el servicio de almacenamiento emulado, especifique el nombre de host del emulador y el puerto de Azure Table Storage como 127.0.0.1:10002, seguido del nombre de la cuenta de almacenamiento emulada.

Método URI de solicitud Versión de HTTP
POST http://127.0.0.1:10002/devstoreaccount1/mytable HTTP/1.1

Table Storage en el emulador de Storage difiere de Azure Table Storage de varias maneras. Para más información, consulte Diferencias entre el emulador de Storage y los servicios de Azure Storage.

Parámetros del identificador URI

Puede especificar los siguientes parámetros adicionales en el URI de solicitud.

Parámetro Descripción
timeout Opcional. El parámetro timeout se expresa en segundos. Para más información, consulte Establecimiento de tiempos de espera para las operaciones de Table Storage.

Encabezados de solicitud

En la tabla siguiente se describen los encabezados de solicitud requeridos y opcionales.

Encabezado de solicitud Descripción
Authorization Necesario. Especifica el esquema de autorización, el nombre de la cuenta y la firma. Para obtener más información, vea Autorización de solicitudes a Azure Storage.
Date o x-ms-date Necesario. Especifica la hora universal coordinada (UTC) de la solicitud. Para obtener más información, vea Autorización de solicitudes a Azure Storage.
x-ms-version Opcional. Especifica la versión de la operación que se utiliza para esta solicitud. Para obtener más información, vea Versiones de los servicios de Azure Storage.
Content-Type Necesario. Especifica el tipo de contenido de la carga. Los valores posibles son application/atom+xml (versiones anteriores a 2015-12-11 solo) y application/json.

Para obtener más información sobre los tipos de contenido válidos, consulte Formato de carga para las operaciones de Table Storage.
Content-Length Necesario. Longitud del cuerpo de la solicitud.
Accept Opcional. Especifica el tipo de contenido aceptado de la carga de respuesta. Los valores posibles son:

- application/atom+xml (solo versiones anteriores a 2015-12-11)
- application/json;odata=nometadata
- application/json;odata=minimalmetadata
- application/json;odata=fullmetadata

Para más información, consulte Formato de carga para las operaciones de Table Storage.
Prefer Opcional. Especifica si la respuesta debe incluir la entidad insertada en la carga. Los valores posibles son return-no-content y return-content. Para obtener más información, vea Establecer el encabezado Prefer para administrar el eco de respuesta en las operaciones de inserción.
x-ms-client-request-id Opcional. Proporciona un valor opaco generado por el cliente con un límite de caracteres de 1 kibibyte (KiB) que se registra en los registros cuando se configura el registro. Se recomienda encarecidamente usar este encabezado para correlacionar las actividades del lado cliente con las solicitudes que recibe el servidor. Para más información, consulte Supervisión de Azure Table Storage.

Cuerpo de la solicitud

La Insert Entity operación envía la entidad que se va a insertar como una OData entidad, que es un JSON o una fuente Atom. Para obtener más información, consulte Inserción y actualización de entidades.

Nota

JSON es el formato de carga recomendado y es el único formato admitido para la versión 2015-12-11 y posteriores.

JSON (versión 2013-08-15 y posteriores)

Este es un cuerpo de solicitud JSON de ejemplo para la Insert Entity operación:

{  
   "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"  
}  

Fuente Atom (versiones anteriores a 2015-12-11)

A continuación se muestra un cuerpo de solicitud Atom de ejemplo para la operación 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 respuesta incluye un código de estado HTTP, un conjunto de encabezados de respuesta y un cuerpo de respuesta.

status code

El código de estado depende del valor del encabezado Prefer. Si el encabezado Prefer se establece en return-no-content, una operación correcta devuelve el código de estado 204 (No Content). Si no se especifica el Prefer encabezado o si se establece return-contenten , una operación correcta devuelve el código de estado 201 (Created). Para obtener más información, vea Establecer el encabezado Prefer para administrar el eco de respuesta en las operaciones de inserción.

Para obtener información sobre los códigos de estado, consulte Códigos de error y estado y Códigos de error de Table Service.

Encabezados de respuesta

La respuesta incluye los encabezados siguientes. La respuesta también puede incluir encabezados HTTP adicionales y estándar. Todos los encabezados estándar se ajustan a la especificación del protocolo HTTP/1.1.

Encabezado de respuesta Descripción
x-ms-request-id Identifica de forma única la solicitud que se realizó y se puede usar para solucionar problemas de la solicitud. Para más información, consulte Solución de problemas de operaciones de API.
x-ms-version Indica la versión de Table Storage usada para ejecutar la solicitud. Este encabezado se devuelve para las solicitudes realizadas en la versión 2009-09-19 y versiones posteriores.
Date Valor de fecha y hora UTC que indica la hora a la que se inició la respuesta. El servicio genera este valor.
ETag para ETag la entidad.
Preference-Applied Indica si el encabezado de solicitud Prefer se ha respetado. Si la respuesta no incluye este encabezado, no se respeta el Prefer encabezado. Si se devuelve este encabezado, su valor será return-content o return-no-content.

Para obtener más información, vea Establecer el encabezado Prefer para administrar el eco de respuesta en las operaciones de inserción.
Content-Type Indica el tipo de contenido de la carga. El valor depende del valor especificado para el encabezado de solicitud Accept. Los valores posibles son:

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

Para obtener más información sobre los tipos de contenido, consulte Formato de carga para las operaciones de Table Storage.
x-ms-client-request-id Se puede usar para solucionar problemas de solicitudes y respuestas correspondientes. El valor de este encabezado es igual al valor del x-ms-client-request-id encabezado, si está presente en la solicitud. El valor tiene como máximo 1024 caracteres ASCII visibles. Si el x-ms-client-request-id encabezado no está presente en la solicitud, no estará presente en la respuesta.

Response body

Si la solicitud incluye el encabezado Prefer con el valor return-no-content, no se devuelve ningún cuerpo de respuesta. De lo contrario, el cuerpo de la respuesta es un OData conjunto de entidades.

Nota:

JSON es el formato de carga recomendado y es el único formato admitido para la versión 2015-12-11 y posteriores.

JSON (versión 2013-08-15 y posteriores)

A continuación se muestra una respuesta JSON de ejemplo para cada nivel de metadatos:

Sin metadatos:

{  
   "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"  
}  
  

Metadatos mínimos:

{  
   "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"  
}  
  

Metadatos completos:

{  
   "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"  
}  

Fuente Atom (versiones anteriores a 2015-12-11)

A continuación se muestra un cuerpo de respuesta Atom de ejemplo para la operación 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>  

Authorization

El propietario de la cuenta puede realizar esta operación. Además, cualquier persona con una firma de acceso compartido que tenga permiso para realizar esta operación puede hacerlo.

Comentarios

Al insertar una entidad en una tabla, debe especificar valores para las propiedades del PartitionKey sistema y RowKey . Juntas, estas propiedades forman la clave principal y deben ser únicas dentro de la tabla.

PartitionKey Los valores y RowKey deben ser valores de cadena. Cada valor de clave puede tener un tamaño de hasta 64 KiB. Si usa un valor entero para el valor de clave, debe convertir el entero en una cadena de ancho fijo, ya que se ordenan canónicamente. Por ejemplo, convierta el valor 1 en 0000001, para garantizar la ordenación adecuada.

Para escribir explícitamente una propiedad, especifique el tipo de datos adecuado OData estableciendo el m:type atributo dentro de la definición de propiedad en la fuente Atom. Para obtener más información sobre cómo escribir propiedades, vea Insertar y actualizar entidades.

Table Storage no hace null que los valores de las propiedades sean persistentes. Especificar una propiedad con un null valor equivale a omitir esa propiedad en la solicitud.

Para obtener información sobre cómo realizar operaciones de inserción por lotes, consulte Realización de transacciones de grupo de entidades.

Consulte también

Autorización de solicitudes a Azure Storage
Establecimiento de los encabezados de versión del servicio de datos de OData
Inserción y actualización de entidades
Estado y códigos de error
Códigos de error de Table Storage