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)
Aqui está um corpo de solicitação atom de exemplo para a Insert Entity
operação.
<?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 será 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)
Aqui está um exemplo de 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"
}
Feed Atom (versões anteriores a 11/12/2015)
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.
PartitionKey
os valores e RowKey
podem ter até 1024 caracteres 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 elas são classificadas 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 Inserindo e atualizando entidades.
O Armazenamento de Tabelas não torna null
os valores das 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