エンティティの挿入

Insert Entity 操作は、テーブルに新しいエンティティを挿入します。

要求

要求は Insert Entity 次のように構築できます。 HTTPS が推奨されます。 myaccount はストレージ アカウントの名前に、mytable はテーブルの名前に置き換えます。

Method 要求 URI HTTP バージョン
POST https://myaccount.table.core.windows.net/mytable HTTP/1.1

エミュレートされたストレージ サービス URI

エミュレートされたストレージ サービスに対して要求を行う場合は、エミュレーターのホスト名と Azure Table Storage ポートを として 127.0.0.1:10002指定し、その後にエミュレートされたストレージ アカウント名を指定します。

Method 要求 URI HTTP バージョン
POST http://127.0.0.1:10002/devstoreaccount1/mytable HTTP/1.1

ストレージ エミュレーターの Table Storage は、いくつかの点で Azure Table Storage とは異なります。 詳細については、「 ストレージ エミュレーターと Azure Storage サービスの違い」を参照してください。

URI パラメーター

要求 URI には、次の追加パラメーターを指定できます。

パラメーター 説明
timeout 省略可能。 timeout パラメーターは、秒単位で表されます。 詳細については、「 Table Storage 操作のタイムアウトの設定」を参照してください。

要求ヘッダー

必須要求ヘッダーと省略可能な要求ヘッダーを次の表に示します。

要求ヘッダー 説明
Authorization 必須。 承認スキーム、アカウント名、署名を指定します。 詳細については、「Azure Storage への要求を承認する」をご覧ください。
Date または x-ms-date 必須。 要求に対して協定世界時 (UTC) を指定します。 詳細については、「Azure Storage への要求を承認する」をご覧ください。
x-ms-version 省略可能。 この要求に使用する操作のバージョンを指定します。 詳細については、「Azure Storage サービスのバージョン管理」を参照してください。
Content-Type 必須。 ペイロードのコンテンツ タイプを指定します。 指定できる値は application/atom+xml (2015-12-11 より前のバージョンのみ)、および application/jsonです。

有効なコンテンツ タイプの詳細については、「 Table Storage 操作のペイロード形式」を参照してください。
Content-Length 必須。 要求本文の長さです。
Accept 省略可能。 応答ペイロードの受け入れられたコンテンツの種類を指定します。 次のいずれかの値になります。

- application/atom+xml (2015-12-11 より前のバージョンのみ)
- application/json;odata=nometadata
- application/json;odata=minimalmetadata
- application/json;odata=fullmetadata

詳細については、「 Table Storage 操作のペイロード形式」を参照してください。
Prefer 省略可能。 応答で挿入されたエンティティをペイロードに含める必要があるかどうかを指定します。 設定可能な値は return-no-content および return-content です。 詳細については、「 Prefer ヘッダーを設定して挿入操作の応答エコーを管理する」を参照してください。
x-ms-client-request-id 省略可能。 ログ記録の構成時にログに記録される 1 kibibyte (KiB) 文字制限を使用して、クライアントによって生成された不透明な値を提供します。 このヘッダーを使用して、クライアント側のアクティビティとサーバーが受信する要求を関連付けるよう強くお勧めします。 詳細については、「 Azure Table Storage の監視」を参照してください。

要求本文

この操作では Insert Entity 、エンティティとして OData 挿入されるエンティティ (JSON または Atom フィード) が送信されます。 詳細については、「 エンティティの挿入と更新」を参照してください。

注意

JSON は推奨されるペイロード形式であり、バージョン 2015-12-11 以降でサポートされている唯一の形式です。

JSON (バージョン 2013-08-15 以降)

操作の 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"  
}  

Atom フィード (2015-12-11 より前のバージョン)

次の例は、Insert Entity 操作の Atom 要求本文です。

<?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>  

[応答]

応答には、HTTP 状態コード、一連の応答ヘッダー、および応答本文が含まれています。

状態コード

ステータス コードは、Prefer ヘッダーの値によって異なります。 Prefer ヘッダーが return-no-content に設定されている場合、操作が正常に完了するとステータス コード 204 (No Content) が返されます。 ヘッダーが Prefer 指定されていない場合、または ヘッダーが に return-content設定されている場合、正常な操作は状態コード 201 (Created) を返します。 詳細については、「 Prefer ヘッダーを設定して挿入操作の応答エコーを管理する」を参照してください。

状態コードの詳細については、「 状態とエラー コード 」および 「Table Service のエラー コード」を参照してください

応答ヘッダー

応答には次のヘッダーが含まれます。 応答には、追加の標準 HTTP ヘッダーを含めることもできます。 すべての標準ヘッダーは 、HTTP/1.1 プロトコル仕様に準拠しています

応答ヘッダー 説明
x-ms-request-id 行われた要求を一意に識別し、要求のトラブルシューティングに使用できます。 詳細については、「 API 操作のトラブルシューティング」を参照してください。
x-ms-version 要求の実行に使用される Table Storage のバージョンを示します。 このヘッダーはバージョン 2009-09-19 以降で行った要求に対して返されます。
Date 応答が開始された時刻を示す UTC 日付/時刻値。 サービスによってこの値が生成されます。
ETag ETagエンティティの 。
Preference-Applied Prefer 要求ヘッダーが受け入れられたかどうかを示します。 応答にこのヘッダーが含まれていない場合、 Prefer ヘッダーは受け入れられません。 このヘッダーが返された場合、その値は return-content または return-no-content になります。

詳細については、「 Prefer ヘッダーを設定して挿入操作の応答エコーを管理する」を参照してください。
Content-Type ペイロードのコンテンツの種類を示します。 値は、Accept 要求ヘッダーに指定された値によって異なります。 次のいずれかの値になります。

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

コンテンツ タイプの詳細については、「 Table Storage 操作のペイロード形式」を参照してください。
x-ms-client-request-id 要求と対応する応答のトラブルシューティングに使用できます。 このヘッダーの値は、要求に存在する x-ms-client-request-id 場合は、ヘッダーの値と同じです。 この値は、最大 1,024 文字の可視 ASCII 文字です。 ヘッダーが x-ms-client-request-id 要求に存在しない場合、応答には存在しません。

応答本文

要求に値が return-no-contentPrefer ヘッダーが含まれる場合、応答本文は返されません。 それ以外の場合、応答本文はエンティティ セットです OData

注意

JSON は推奨されるペイロード形式であり、バージョン 2015-12-11 以降でサポートされている唯一の形式です。

JSON (バージョン 2013-08-15 以降)

次の例は、各メタデータ レベルの 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"  
}  

Atom フィード (2015-12-11 より前のバージョン)

次の例は、Insert Entity 操作の Atom 応答本文です。

<?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>  

承認

アカウント所有者は、この操作を実行できます。 さらに、この操作を実行するアクセス許可を持つ共有アクセス署名を持つすべてのユーザーがこれを行うことができます。

注釈

テーブルにエンティティを挿入するときは、 プロパティと RowKey システム プロパティの値を指定するPartitionKey必要があります。 これらのプロパティは共に主キーを形成し、テーブル内で一意である必要があります。

RowKey の両方のPartitionKey値は文字列値である必要があります。 各キー値のサイズは最大 64 KiB です。 キー値に整数値を使用する場合は、整数が正規に並べ替えられているため、整数を固定幅の文字列に変換する必要があります。 たとえば、値 1 を に変換して 0000001、適切な並べ替えを行います。

プロパティを明示的に入力するには、Atom フィードのプロパティ定義内で 属性をm:type設定して、適切なODataデータ型を指定します。 プロパティの入力の詳細については、「 エンティティの挿入と更新」を参照してください。

Table Storage では、プロパティの値は永続的になりません null 。 値を持つプロパティを null 指定することは、要求でそのプロパティを省略することと同じです。

バッチ挿入操作の実行については、「 エンティティ グループ トランザクションの実行」を参照してください。

関連項目

Azure Storage への要求を承認する
OData データ サービスのバージョン ヘッダーの設定
エンティティの挿入と更新
状態コードとエラー コード
Table Storage のエラー コード