Perbarui Entitas
Operasi memperbarui Update Entity
entitas yang ada dalam tabel. Operasi Update Entity
menggantikan seluruh entitas, dan Anda dapat menggunakan operasi untuk menghapus properti.
Minta
Anda dapat membuat Update Entity
permintaan sebagai berikut. HTTPS disarankan. Ganti myaccount dengan nama akun penyimpanan Anda, dan mytable
dengan nama tabel Anda. Ganti myPartitionKey dan myRowKey dengan nama kunci partisi dan kunci baris yang mengidentifikasi entitas yang akan diperbarui.
Metode | Meminta URI | Versi HTTP |
---|---|---|
PUT |
https://myaccount.table.core.windows.net/mytable(PartitionKey='myPartitionKey', RowKey='myRowKey') |
HTTP/1.1 |
Alamat entitas yang akan diperbarui dapat mengambil sejumlah formulir pada URI permintaan. Lihat Protokol OData untuk detail tambahan.
URI layanan penyimpanan yang ditimulasi
Saat Anda membuat permintaan terhadap layanan penyimpanan yang ditimulasi, tentukan nama host emulator dan port Azure Table Storage sebagai 127.0.0.1:10002
, diikuti dengan nama akun penyimpanan yang ditimulasi.
Metode | Meminta URI | Versi HTTP |
---|---|---|
PUT |
http://127.0.0.1:10002/devstoreaccount1/mytable(PartitionKey='myPartitionKey', RowKey='myRowKey') |
HTTP/1.1 |
Table Storage di emulator penyimpanan berbeda dari Azure Table Storage dalam beberapa cara. Untuk informasi selengkapnya, lihat Perbedaan antara emulator penyimpanan dan layanan Azure Storage.
Parameter URI
Anda dapat menentukan parameter tambahan berikut pada URI permintaan.
Parameter | Deskripsi |
---|---|
timeout |
Opsional. Parameter timeout dinyatakan dalam hitung detik. Untuk informasi selengkapnya, lihat Mengatur batas waktu untuk operasi Table Storage. |
Header permintaan
Tabel berikut ini menjelaskan header permintaan yang diperlukan dan opsional.
Meminta kop | Deskripsi |
---|---|
Authorization |
Wajib diisi. Menentukan skema otorisasi, nama akun, dan tanda tangan. Untuk informasi selengkapnya, lihat Mengotorisasi permintaan ke Azure Storage. |
Date atau x-ms-date |
Wajib diisi. Menentukan Waktu Universal Terkoordinasi (UTC) untuk permintaan tersebut. Untuk informasi selengkapnya, lihat Mengotorisasi permintaan ke Azure Storage. |
x-ms-version |
Pilihan. Menentukan versi operasi yang akan digunakan untuk permintaan ini. Untuk informasi selengkapnya, lihat Penerapan versi untuk layanan Azure Storage. |
Content-Type |
Wajib diisi. Menentukan jenis konten payload. Nilai yang mungkin adalah application/atom+xml dan application/json .Untuk informasi selengkapnya tentang jenis konten yang valid, lihat Format payload untuk operasi Table Storage. |
Content-Length |
Wajib diisi. Panjang isi permintaan. |
If-Match |
Wajib diisi. Klien dapat menentukan ETag untuk entitas pada permintaan, untuk dibandingkan dengan yang ETag dikelola oleh layanan untuk tujuan konkurensi optimis. Operasi pembaruan dilakukan hanya jika ETag yang dikirim oleh klien cocok dengan nilai yang dikelola oleh server. Kecocokan ini menunjukkan bahwa entitas belum dimodifikasi sejak diambil oleh klien.Untuk memaksa pembaruan tanpa syarat, atur If-Match ke karakter kartubebas (*). |
x-ms-client-request-id |
Opsional. Menyediakan nilai buram yang dihasilkan klien dengan batas karakter 1 kibibyte (KiB) yang dicatat dalam log saat pengelogan dikonfigurasi. Kami sangat menyarankan Anda menggunakan header ini untuk menghubungkan aktivitas sisi klien dengan permintaan yang diterima server. Untuk informasi selengkapnya, lihat Memantau Azure Table Storage. |
Isi permintaan
Operasi Update Entity
mengirimkan entitas untuk diperbarui sebagai OData
set entitas, yang dapat berupa JSON atau umpan Atom. Untuk informasi selengkapnya, lihat Menyisipkan dan memperbarui entitas.
Catatan
JSON adalah format payload yang direkomendasikan, dan ini adalah satu-satunya format yang didukung untuk versi 2015-12-11 dan yang lebih baru.
Permintaan sampel
JSON (versi 2013-08-15 dan yang lebih baru)
Contoh ini menunjukkan contoh URI permintaan, header permintaan terkait, dan isi permintaan untuk umpan JSON.
Request Headers:
x-ms-version: 2015-12-11
Accept-Charset: UTF-8
Content-Type: application/json
If-Match: *
x-ms-date: Mon, 27 Jun 2016 18:10:24 GMT
Authorization: SharedKeyLite myaccount:u0sWZKmjBD1B7LY/CwXWCnHdqK4B1P4z8hKy9SVW49o=
Content-Length: ###
DataServiceVersion: 3.0;NetFx
MaxDataServiceVersion: 3.0;NetFx
{
"Address":"Santa Clara",
"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":false,
"NumberOfOrders@odata.type":"Edm.Int64",
"NumberOfOrders":"255",
"PartitionKey":"mypartitionkey",
"RowKey":"myrowkey"
}
Umpan atom (versi yang lebih lama dari 2015-12-11)
Contoh ini menunjukkan contoh URI permintaan, header permintaan terkait, dan isi permintaan untuk umpan Atom.
Request URI:
https://myaccount.table.core.windows.net/mytable(PartitionKey='myPartitionKey',RowKey='myRowKey')
Request Headers:
x-ms-version: 2013-08-15
Accept: application/atom+xml,application/xml
Accept-Charset: UTF-8
Content-Type: application/atom+xml
If-Match: *
x-ms-date: Wed, 20 Nov 2013 18:10:24 GMT
Authorization: SharedKeyLite myaccount:u0sWZKmjBD1B7LY/CwXWCnHdqK4B1P4z8hKy9SVW49o=
Content-Length: ###
DataServiceVersion: 1.0;NetFx
MaxDataServiceVersion: 2.0;NetFx
Request Body:
<?xml version="1.0" encoding="utf-8"?>
<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>2008-09-18T23:46:37.168836Z</updated>
<author>
<name />
</author>
<id>https://myaccount.table.core.windows.net/mytable(PartitionKey='mypartitionkey',RowKey='myrowkey')</id>
<content type="application/xml">
<m:properties>
<d:Address>Santa Clara</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:00Z</d:CustomerSince>
<d:IsActive m:type="Edm.Boolean">false</d:IsActive>
<d:NumOfOrders m:type="Edm.Int64">255</d:NumOfOrders>
<d:PartitionKey>mypartitionkey</d:PartitionKey>
<d:RowKey>myrowkey</d:RowKey>
</m:properties>
</content>
</entry>
Respons
Respons mencakup kode status HTTP dan sekumpulan header respons.
Kode status
Operasi yang berhasil mengembalikan kode status 204 (Tanpa Konten). Untuk informasi tentang kode status, lihat Kode status dan kesalahan serta kode kesalahan Table Storage.
Header respons
Respons mencakup header berikut. Respons juga dapat mencakup header HTTP standar tambahan. Semua header standar sesuai dengan spesifikasi protokol HTTP/1.1.
Header respons | Deskripsi |
---|---|
ETag |
ETag untuk entitas. |
x-ms-request-id |
Header ini secara unik mengidentifikasi permintaan yang dibuat, dan dapat digunakan untuk memecahkan masalah permintaan. Untuk informasi selengkapnya, lihat Pemecahan masalah operasi API. |
x-ms-version |
Menunjukkan versi Table Storage yang digunakan untuk menjalankan permintaan. Header ini dikembalikan untuk permintaan yang dibuat terhadap versi 2009-09-19 dan yang lebih baru. |
Date |
Nilai tanggal/waktu UTC yang menunjukkan waktu di mana respons dimulai. Layanan menghasilkan nilai ini. |
x-ms-client-request-id |
Anda dapat menggunakan header ini untuk memecahkan masalah permintaan dan respons terkait. Nilai header ini sama dengan nilai x-ms-client-request-id header, jika ada dalam permintaan. Nilainya paling banyak 1.024 karakter ASCII yang terlihat.
x-ms-client-request-id Jika header tidak ada dalam permintaan, header ini tidak akan ada dalam respons. |
Isi Respons
Tidak ada.
Respons sampel
Response Status:
HTTP/1.1 204 No Content
Response Headers:
Connection: Keep-Alive
x-ms-request-id: 2c085f8f-11a4-4e1d-bd49-82c6bd87649d
Content-Length: 0
Cache-Control: no-cache
Date: Mon, 27 Jun 2016 18:12:54 GMT
ETag: W/"0x5B168C7B6E589D2"
DataServiceVersion: 3.0;NetFx
MaxDataServiceVersion: 3.0;NetFx
Server: Windows-Azure-Table/1.0 Microsoft-HTTPAPI/2.0
Authorization
Pemilik akun dapat melakukan operasi ini. Selain itu, siapa pun dengan tanda tangan akses bersama yang memiliki izin untuk melakukan operasi ini dapat melakukannya.
Keterangan
Saat memperbarui entitas, Anda harus menentukan PartitionKey
properti sistem dan RowKey
sebagai bagian dari operasi pembaruan.
ETag
Entitas menyediakan konkurensi optimis default untuk operasi pembaruan. Nilainya ETag
buram, dan tidak boleh dibaca atau diandalkan. Sebelum operasi pembaruan terjadi, Table Storage memverifikasi bahwa nilai entitas saat ini ETag
identik dengan nilai yang ETag
disertakan dengan permintaan pembaruan di If-Match
header. Jika nilainya identik, Table Storage menentukan bahwa entitas belum dimodifikasi sejak diambil, dan operasi pembaruan berlanjut.
Jika entitas ETag
berbeda dari yang ditentukan dengan permintaan pembaruan, operasi pembaruan gagal dengan kode status 412 (Prasyarat Gagal). Kesalahan ini menunjukkan bahwa entitas telah diubah pada server sejak diambil. Untuk mengatasi kesalahan ini, ambil kembali entitas dan terisi ulang permintaan.
Untuk memaksa operasi pembaruan tanpa syarat, atur nilai If-Match
header ke karakter kartubebas (*) pada permintaan. Meneruskan nilai ini ke operasi akan mengambil alih konkurensi optimis default, dan mengabaikan ketidakcocokan dalam ETag
nilai.
If-Match
Jika header hilang dari permintaan dalam versi 2011-08-18 atau yang lebih baru, layanan melakukan operasi Sisipkan Atau Ganti Entitas (upsert). Dalam versi yang lebih lama dari 2011-08-18, layanan mengembalikan kode status 400 (Permintaan Buruk).
Penyimpanan Tabel tidak mempertahankan null
nilai untuk properti. Menentukan properti dengan nilai setara dengan null
menghilangkan properti tersebut dalam permintaan.
Catatan
Anda dapat memanfaatkan salah satu perilaku untuk menghapus properti dari entitas.
Untuk mengetik properti secara eksplisit, tentukan jenis data yang sesuai OData
dengan mengatur m:type
atribut dalam definisi properti di umpan Atom. Untuk informasi selengkapnya tentang mengetik properti, lihat Menyisipkan dan memperbarui entitas.
Aplikasi apa pun yang dapat mengotorisasi dan mengirim permintaan HTTP PUT
dapat memperbarui entitas.
Untuk informasi tentang melakukan operasi pembaruan batch, lihat Melakukan transaksi grup entitas.
Lihat juga
Entitas Penggabungan
Mengotorisasi permintaan ke Azure Storage
Mengatur header versi layanan data OData
Status dan kode galat
Kode kesalahan Table Storage