Продажи: 1-800-867-1389

Вставка сущности

Обновлено: Май 2015 г.

Операция Insert Entity вставляет новую сущность в таблице.

Запрос Insert Entity можно составить следующим образом. Рекомендуется использовать протокол HTTPS. Замените myaccount именем учетной записи хранилища, а mytable именем таблицы.

 

Метод URI запроса Версия HTTP

POST

https://myaccount.table.core.windows.net/mytable

HTTP/1.1

При построении запроса к эмулированной службе хранилища укажите имя узла эмулятора и порт службы таблиц в виде 127.0.0.1:10002, затем укажите имя эмулированной учетной записи хранилища.

 

Метод URI запроса Версия HTTP

POST

http://127.0.0.1:10002/devstoreaccount1/mytable

HTTP/1.1

Служба таблиц в эмуляторе хранилища отличается от службы таблиц Windows® Azure™ по нескольким аспектам. Дополнительные сведения см. в разделах About Development Storage и Differences between Development Storage and Cloud Storage Services.

Отсутствует.

В следующей таблице перечислены обязательные и необязательные заголовки запросов.

 

Заголовок запроса Описание

Authorization

Обязательно. Указывает схему проверки подлинности, имя учетной записи и подпись. Дополнительные сведения см. в Проверка подлинности для служб хранения Azure.

Date или x-ms-date

Обязательно. Задает время в формате UTC для запроса. Дополнительные сведения см. в Проверка подлинности для служб хранения Azure.

x-ms-version

Необязательно. Задает версию операции, используемой для этого запроса. Дополнительные сведения см. в Управление версиями для служб хранилища Azure.

Content-Type

Обязательно. Указывает тип содержимого в полезных данных. Возможными значениями являются application/atom+xml и application/json.

Дополнительные сведения о допустимых типах содержимого см. в разделе Формат полезных данных для операций службы таблиц.

Content-Length

Обязательно. Длина текста запроса.

Accept

Необязательно. Указывает принимаемый в ответе тип содержимого. Возможные значения:

  • application/atom+xml

  • application/json;odata=nometadata

  • application/json;odata=minimalmetadata

  • application/json;odata=fullmetadata

Дополнительные сведения см. в Формат полезных данных для операций службы таблиц.

Prefer

Необязательно. Указывает, должен ли ответ включать сущность, вставленную в полезные данные. Возможными значениями являются return-no-content и return-content. Дополнительные сведения см. в Установка предпочитаемого заголовка для управления эхо-повтором ответов в операциях вставки.

x-ms-client-request-id

Необязательно. Предоставляет сформированное клиентом непрозрачное значение с ограничением в 1 КБ, которое записывается в журналы аналитики, когда включено ведение журналов аналитики хранилища. Этот заголовок настоятельно рекомендуется использовать для соотнесения действий, выполняемых на стороне клиента, с запросами, получаемыми сервером. Дополнительные сведения см. в разделах Сведения о ведении журнала службы аналитики хранилища и Ведение журналов в Azure: использование журналов для отслеживания запросов к хранилищу.

Операция Insert Entity отправляет вставляемую сущность в виде сущности OData, которая представляет собой веб-канал JSON или Atom. Дополнительные сведения см. в Вставка и обновление сущностей.

Вот образец текста запроса Atom для операции 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="http://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>       <d:Timestamp m:type="Edm.DateTime">0001-01-01T00:00:00</d:Timestamp>     </m:properties>   </content> </entry>

Вот образец текста запроса JSON для операции 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" }

Ответ включает код состояния HTTP, набор заголовков ответа и текст ответа.

Код состояния зависит от значения заголовка Prefer. Если заголовок Prefer имеет значение return-no-content, то успешная операция возвращает код состояния 204 (No Content). Если заголовок Prefer не указан или если он имеет значение return-content, успешная операция возвращает код состояния 201 (Created). Дополнительные сведения см. в Установка предпочитаемого заголовка для управления эхо-повтором ответов в операциях вставки.

Дополнительные сведения о кодах состояния см. в разделах Коды состояний и ошибок и Коды ошибок для службы таблиц.

Ответ содержит следующие заголовки. Ответ может также включать дополнительные стандартные заголовки HTTP. Все стандартные заголовки соответствуют спецификации протокола HTTP/1.1.

 

Заголовок ответа Описание

x-ms-request-id

Этот заголовок однозначно определяет выполненный запрос, его также можно использовать для устранения связанных с запросом неполадок. Дополнительные сведения см. в Устранение неполадок при API-операциях.

x-ms-version

Указывает версию службы таблиц, используемую для выполнения запроса. Этот заголовок возвращается для запросов к версии 2009-09-19 и более поздним версиям.

Date

Значение даты и времени в формате UTC, сформированное службой и указывающее время, когда был инициирован ответ.

Preference-Applied

Указывает, был ли учтен заголовок запроса Prefer. Если ответ не содержит этот заголовок, то заголовок Prefer не был учтен. Если этот заголовок возвращен, то он будет иметь значение return-content или return-no-content.

Дополнительные сведения см. в Установка предпочитаемого заголовка для управления эхо-повтором ответов в операциях вставки.

Content-Type

Указывает тип содержимого полезных данных. Значение зависит от значения, указанного для заголовка запроса Accept. Возможные значения:

  • application/atom+xml

  • application/json;odata=nometadata

  • application/json;odata=minimalmetadata

  • application/json;odata=fullmetadata

Дополнительные сведения о типах содержимого см. в разделе Формат полезных данных для операций службы таблиц.

Если запрос содержит заголовок Prefer со значением return-no-content, то текст ответа возвращен не будет. В противном случае текстом ответа будет набор сущностей OData.

Ниже приведен пример текста ответа Atom для операции 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/&quot;0x5B168C7B6E589D2&quot;" xmlns="http://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>

Далее приведен образец ответа JSON для каждого уровня метаданных.

Без метаданных:

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

Минимальные метаданные:

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

Полные метаданные:

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

Эта операция может выполняться владельцем учетной записи, а также любым пользователем с подписью общего доступа, у которой имеется разрешение на выполнение данной операции.

При вставке сущности в таблицу необходимо указать значения системных свойств PartitionKey и RowKey. Вместе эти свойства составляют первичный ключ и должны быть уникальными в пределах таблицы.

Значения PartitionKey и RowKey должны быть строковыми. Каждое значение ключа может иметь размер до 64 КБ. Если используется целочисленное значение в качестве значения ключа, то необходимо преобразовать целое число в строку фиксированной ширины, поскольку они сортируются канонически. Например, необходимо преобразовать значение 1 в 0000001, чтобы обеспечить правильную сортировку.

Чтобы явным образом задать свойство, укажите соответствующий тип данных OData, задав атрибут m:type в пределах определения свойства в веб-канале Atom. Дополнительные сведения о свойствах типов см. в разделе Вставка и обновление сущностей.

Дополнительные сведения о выполнении операций вставки см. в разделе Выполнение транзакций группы сущности.

См. также

Была ли вам полезна эта информация?
(1500 символов осталось)
Спасибо за ваш отзыв
Показ:
© 2015 Microsoft