导出 (0) 打印
全部展开

插入实体

更新时间: 2014年2月

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存储仿真程序与 Azure 存储服务之间的差异

无。

下表介绍必需的和可选的请求标头。

 

请求标头 说明

Authorization

必需。指定身份验证方案、帐户名和签名。有关详细信息,请参阅Azure 存储服务身份验证

Datex-ms-date

必需。为请求指定协调世界时 (UTC)。有关详细信息,请参阅Azure 存储服务身份验证

x-ms-version

可选。指定用于此请求的操作的版本。有关详细信息,请参阅Azure 存储服务版本化

Content-Type

必需。指定负载的内容类型。可能的值为 application/atom+xmlapplication/json

有关有效内容类型的详细信息,请参阅表服务操作的负载格式

Content-Length

必需。请求正文的长度。

Accept

可选。指定响应负载已接受的内容类型。可能的值有:

  • application/atom+xml

  • application/json;odata=nometadata

  • application/json;odata=minimalmetadata

  • application/json;odata=fullmetadata

有关详细信息,请参阅表服务操作的负载格式

Prefer

可选。指定响应是否应包含负载中插入的实体。可能的值为 return-no-contentreturn-content。有关详细信息,请参阅设置 Prefer 标头以管理插入操作上的响应回显

x-ms-client-request-id

可选。提供客户端生成的、附带 1 KB 字符限制的不透明值,在启用存储分析日志记录时,将在分析日志中记录该值。强烈建议使用此标头将客户端活动与服务器接收的请求相关联。有关详细信息,请参阅 关于存储分析日志记录Azure 日志记录:使用日志跟踪存储请求

Insert Entity操作以 OData 实体(可以是 JSON 或 Atom 馈送)的形式发送要插入的实体。有关详细信息,请参阅插入和更新实体

下面是 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="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>

下面是 Insert Entity 操作的示例 JSON 请求正文:

{
   "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)。有关详细信息,请参阅设置 Prefer 标头以管理插入操作上的响应回显

有关状态代码的信息,请参阅状态和错误代码表服务错误代码

响应包含以下标头。该响应还可能包括其他标准 HTTP 标头。所有标准标头都符合 HTTP/1.1 协议规范

 

响应标头 说明

x-ms-request-id

此标头唯一地标识发出的请求,并且可用于解决请求问题。有关详细信息,请参阅API 操作故障排除

x-ms-version

指示用于执行请求的表服务的版本。针对 2009-09-19 和更高版本发出的请求将返回此标头。

Date

服务生成的 UTC 日期/时间值指示启动响应的时间。

Preference-Applied

指示是否接受 Prefer 请求标头。如果响应不包含该标头,则不接受 Prefer 标头。如果返回此标头,其值将为 return-contentreturn-no-content

有关详细信息,请参阅设置 Prefer 标头以管理插入操作上的响应回显

Content-Type

指示负载的内容类型。该值取决于为 Accept 请求标头指定的值。可能的值有:

  • application/atom+xml

  • application/json;odata=nometadata

  • application/json;odata=minimalmetadata

  • application/json;odata=fullmetadata

有关内容类型的详细信息,请参阅表服务操作的负载格式

如果请求包含的 Prefer 标头具有值 return-no-content,则不返回响应正文。否则,响应正文将是一个 OData 实体集。

下面是 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/&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"
}

帐户所有者以及使用有权执行此操作的共享访问签名的任何人可以执行此操作。

向表中插入实体时,必须指定 PartitionKeyRowKey 系统属性的值。这些属性共同构成了主键,并且在表中必须是唯一的。

PartitionKeyRowKey 值必须是字符串值;每个键值大小最多为 64 KB。如果将整数值作为键值,则应该将整数转换为固定宽度的字符串,因为它们是按规范排序的。例如,应该将 1 值转换为 0000001 以确保正确进行排序。

要显式指定属性类型,请通过在 Atom 馈送的属性定义中设置 m:type 特性来指定相应的 OData 数据类型。有关指定属性类型的更多信息,请参见插入和更新实体

有关如何执行批插入操作的信息,请参阅执行实体组事务

另请参阅

显示:
© 2014 Microsoft