Insert Entity

A operação Insert Entity insere uma nova entidade em uma tabela.

Solicitação

Você pode construir a solicitação da Insert Entity seguinte maneira. HTTPS é recomendado. Substitua myaccount pelo nome da sua conta de armazenamento e mytable pelo nome da tabela.

Método URI da solicitação Versão HTTP
POST https://myaccount.table.core.windows.net/mytable HTTP/1.1

URI do serviço de armazenamento emulado

Ao fazer uma solicitação no serviço de armazenamento emulado, especifique o nome do host do emulador e a porta do Armazenamento de Tabelas do Azure como 127.0.0.1:10002, seguido pelo nome da conta de armazenamento emulado.

Método URI da solicitação Versão HTTP
POST http://127.0.0.1:10002/devstoreaccount1/mytable HTTP/1.1

O Armazenamento de Tabelas no emulador de Armazenamento difere do Armazenamento de Tabelas do Azure de várias maneiras. Para obter mais informações, consulte Diferenças entre o emulador de armazenamento e os serviços de Armazenamento do Azure.

Parâmetros do URI

Você pode especificar os seguintes parâmetros adicionais no URI de solicitação.

Parâmetro Descrição
timeout Opcional. O parâmetro timeout é expresso em segundos. Para obter mais informações, consulte Configurando tempos limite para operações de Armazenamento de Tabelas.

Cabeçalhos da solicitação

A tabela a seguir descreve os cabeçalhos de solicitação obrigatórios e opcionais.

Cabeçalho da solicitação Descrição
Authorization Obrigatórios. Especifica o esquema de autorização, o nome da conta e a assinatura. Para saber mais, confira Autorizar solicitações para o Armazenamento do Azure.
Date ou x-ms-date Obrigatórios. Especifica o UTC (Tempo Universal Coordenado) para a solicitação. Para saber mais, confira Autorizar solicitações para o Armazenamento do Azure.
x-ms-version Opcional. Especifica a versão da operação a ser usada para esta solicitação. Para obter mais informações, consulte Controle de versão para os Serviços de Armazenamento do Azure.
Content-Type Obrigatórios. Especifica o tipo de conteúdo da carga. Os valores possíveis são application/atom+xml (somente versões anteriores a 12-11-2015) e application/json.

Para obter mais formação sobre tipos de conteúdo válidos, consulte Formato de carga para operações de Armazenamento de Tabelas.
Content-Length Obrigatórios. O tamanho do corpo da solicitação.
Accept Opcional. Especifica o tipo de conteúdo aceito da carga de resposta. Os valores possíveis são:

- application/atom+xml (somente versões anteriores a 2015-12-11)
- application/json;odata=nometadata
- application/json;odata=minimalmetadata
- application/json;odata=fullmetadata

Para obter mais informações, consulte Formato de carga para operações de Armazenamento de Tabelas.
Prefer Opcional. Especifica se a resposta deve incluir a entidade inserida na carga. Os valores possíveis são return-no-content e return-content. Para obter mais informações, consulte Configurando o cabeçalho Prefer para gerenciar o eco de resposta em operações de inserção.
x-ms-client-request-id Opcional. Fornece um valor opaco gerado pelo cliente com um limite de caracteres KiB (1 kibibyte) que é registrado nos logs quando o registro em log é configurado. É altamente recomendável que você use esse cabeçalho para correlacionar atividades do lado do cliente com solicitações recebidas pelo servidor. Para obter mais informações, consulte Monitorar o Armazenamento de Tabelas do Azure.

Corpo da solicitação

A Insert Entity operação envia a entidade a ser inserida como uma OData entidade, que é um JSON ou um feed Atom. Para obter mais informações, consulte Inserir e atualizar entidades.

Observação

JSON é o formato de conteúdo recomendado e é o único formato com suporte para a versão 2015-12-11 e posterior.

JSON (versão 2013-08-15 e posterior)

Aqui está um corpo de solicitação JSON de exemplo para a Insert Entity operação:

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

Atom feed (versões anteriores a 2015-12-11)

Veja a seguir um exemplo de corpo de solicitação Atom para a operação 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>  

Resposta

A resposta inclui um código de status HTTP, um conjunto de cabeçalhos de resposta e um corpo de resposta.

Código de status

O código de status depende do valor do cabeçalho Prefer. Se o cabeçalho Prefer for definido como return-no-content, uma operação bem-sucedida retornará o código de status 204 (No Content). Se o Prefer cabeçalho não for especificado ou se estiver definido como return-content, uma operação bem-sucedida retornará status código 201 (Created). Para obter mais informações, consulte Configurando o cabeçalho Prefer para gerenciar o eco de resposta em operações de inserção.

Para obter informações sobre status códigos, consulte Códigos de erro e status e códigos de erro de serviço de tabela.

Cabeçalhos de resposta

A resposta inclui os cabeçalhos a seguir. A resposta também pode incluir cabeçalhos HTTP padrão adicionais. Todos os cabeçalhos padrão estão em conformidade com a especificação do protocolo HTTP/1.1.

Cabeçalho de resposta Descrição
x-ms-request-id Identifica exclusivamente a solicitação que foi feita e pode ser usada para solucionar problemas da solicitação. Para obter mais informações, consulte Solução de problemas de operações de API.
x-ms-version Indica a versão do Armazenamento de Tabelas usada para executar a solicitação. Esse cabeçalho é retornado para solicitações feitas na versão 2009-09-19 e mais recente.
Date Um valor de data/hora UTC que indica a hora em que a resposta foi iniciada. O serviço gera esse valor.
ETag O ETag para a entidade.
Preference-Applied Indica se o cabeçalho da solicitação Prefer tiver sido cumprido. Se a resposta não incluir esse cabeçalho, o Prefer cabeçalho não foi respeitado. Se este cabeçalho for retornado, seu valor será return-content ou return-no-content.

Para obter mais informações, consulte Configurando o cabeçalho Prefer para gerenciar o eco de resposta em operações de inserção.
Content-Type Indica o tipo de conteúdo da carga. O valor depende do valor especificado para o cabeçalho de solicitação Accept. Os valores possíveis são:

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

Para obter mais informações sobre tipos de conteúdo, consulte Formato de carga para operações de Armazenamento de Tabelas.
x-ms-client-request-id Pode ser usado para solucionar problemas de solicitações e respostas correspondentes. O valor desse cabeçalho é igual ao valor do x-ms-client-request-id cabeçalho, se ele estiver presente na solicitação. O valor é no máximo 1.024 caracteres ASCII visíveis. Se o x-ms-client-request-id cabeçalho não estiver presente na solicitação, ele não estará presente na resposta.

Corpo da resposta

Se a solicitação incluir o cabeçalho Prefer com o valor return-no-content, nenhum corpo de resposta será retornado. Caso contrário, o corpo da resposta é um OData conjunto de entidades.

Observação

JSON é o formato de conteúdo recomendado e é o único formato com suporte para a versão 2015-12-11 e posterior.

JSON (versão 2013-08-15 e posterior)

Veja a seguir uma resposta JSON para cada nível de metadados:

Sem metadados:

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

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

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

Atom feed (versões anteriores a 2015-12-11)

Veja a seguir um exemplo de corpo de resposta Atom para a operação 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>  

Autorização

O proprietário da conta pode executar essa operação. Além disso, qualquer pessoa com uma assinatura de acesso compartilhado que tenha permissão para executar essa operação pode fazer isso.

Comentários

Ao inserir uma entidade em uma tabela, você deve especificar valores para as propriedades do PartitionKey sistema e RowKey . Juntas, essas propriedades formam a chave primária e devem ser exclusivas dentro da tabela.

PartitionKey Os valores e RowKey devem ser valores de cadeia de caracteres. Cada valor de chave pode ter até 64 KiB de tamanho. Se você usar um valor inteiro para o valor da chave, deverá converter o inteiro em uma cadeia de caracteres de largura fixa, pois eles são classificados canonicamente. Por exemplo, converta o valor 1 em 0000001, para garantir a classificação adequada.

Para digitar explicitamente uma propriedade, especifique o tipo de dados apropriado OData definindo o m:type atributo dentro da definição de propriedade no feed Atom. Para obter mais informações sobre como digitar propriedades, consulte Inserir e atualizar entidades.

O Armazenamento de Tabelas não torna null os valores para propriedades persistentes. Especificar uma propriedade com um null valor é equivalente a omitir essa propriedade na solicitação.

Para obter informações sobre como executar operações de inserção em lote, consulte Executando transações de grupo de entidades.

Confira também

Autorizar solicitações para o Armazenamento do Azure
Definindo os cabeçalhos de versão do serviço de dados OData
Inserindo e atualizando entidades
Status e códigos de erro
Códigos de erro do Armazenamento de Tabelas