Scal jednostkę
Operacja Merge Entity
aktualizuje istniejącą jednostkę, aktualizując właściwości jednostki. Ta operacja nie zastępuje istniejącej jednostki, ponieważ operacja Aktualizuj jednostkę jest wykonywana.
Żądanie
Żądanie można skonstruować Merge Entity
w następujący sposób. Zalecane jest użycie protokołu HTTPS. Zastąp ciąg myaccount nazwą konta magazynu, a ciąg mytable nazwą tabeli. Zastąp wartości myPartitionKey i myRowKey nazwą klucza partycji i klucza wiersza identyfikującego jednostkę do zaktualizowania.
Metoda | Identyfikator URI żądania | Wersja PROTOKOŁU HTTP |
---|---|---|
MERGE |
https://myaccount.table.core.windows.net/mytable(PartitionKey='myPartitionKey', RowKey='myRowKey') |
HTTP/1.1 |
Adres jednostki do zaktualizowania może przyjmować wiele formularzy w identyfikatorze URI żądania. Aby uzyskać więcej informacji, zobacz Protokół OData .
Identyfikator URI usługi magazynu emulowanego
Po wysłaniu żądania względem emulowanej usługi magazynu określ nazwę hosta emulatora i port usługi Azure Table Storage jako 127.0.0.1:10002
, a następnie nazwę emulowanego konta magazynu.
Metoda | Identyfikator URI żądania | Wersja PROTOKOŁU HTTP |
---|---|---|
MERGE |
http://127.0.0.1:10002/devstoreaccount1/mytable(PartitionKey='myPartitionKey', RowKey='myRowKey') |
HTTP/1.1 |
Usługa Table Storage w emulatorze magazynu różni się od usługi Azure Table Storage na kilka sposobów. Aby uzyskać więcej informacji, zobacz Różnice między emulatorem magazynu i usługami Azure Storage.
Parametry identyfikatora URI
Dla identyfikatora URI żądania można określić następujące dodatkowe parametry.
Parametr | Opis |
---|---|
timeout |
Opcjonalny. Parametr jest wyrażony timeout w sekundach. Aby uzyskać więcej informacji, zobacz Ustawianie limitów czasu dla operacji usługi Table Storage. |
Nagłówki żądań
W poniższej tabeli opisano wymagane i opcjonalne nagłówki żądań.
Nagłówek żądania | Opis |
---|---|
Authorization |
Wymagane. Określa schemat autoryzacji, nazwę konta i podpis. Aby uzyskać więcej informacji, zobacz Autoryzowanie żądań do usługi Azure Storage. |
Date lub x-ms-date |
Wymagane. Określa dla żądania godzinę w formacie uniwersalnego czasu koordynowanego (UTC). Aby uzyskać więcej informacji, zobacz Autoryzowanie żądań do usługi Azure Storage. |
x-ms-version |
Opcjonalny. Określa wersję operacji do użycia dla tego żądania. Aby uzyskać więcej informacji, zobacz Przechowywanie wersji dla usług Azure Storage. |
Content-Type |
Wymagane. Określa typ zawartości ładunku. Możliwe wartości to application/atom+xml i application/json .Aby uzyskać więcej informacji na temat prawidłowych typów zawartości, zobacz Format ładunku dla operacji usługi Table Storage. |
Content-Length |
Wymagane. Długość treści żądania. |
If-Match |
Wymagane. Klient może określić ETag wartość dla jednostki w żądaniu, aby porównać go z ETag obsługiwanym przez usługę celem optymistycznej współbieżności. Operacja aktualizacji zostanie wykonana tylko wtedy, gdy ETag wysyłany przez klienta jest zgodny z wartością obsługiwaną przez serwer. To dopasowanie oznacza, że jednostka nie została zmodyfikowana, ponieważ została pobrana przez klienta.Aby wymusić aktualizację bezwarunkową, ustaw If-Match symbol wieloznaczny (*). |
x-ms-client-request-id |
Opcjonalny. Zapewnia nieprzezroczystą wartość wygenerowaną przez klienta z limitem znaków 1-kibibyte (KiB) rejestrowanym w dziennikach podczas konfigurowania rejestrowania. Zdecydowanie zalecamy używanie tego nagłówka do korelowania działań po stronie klienta z żądaniami odbieranymi przez serwer. Aby uzyskać więcej informacji, zobacz Monitorowanie usługi Azure Table Storage. |
Treść żądania
Operacja Merge Entity
wysyła jednostkę do zaktualizowania jako OData
jednostki, która może być źródłem danych JSON lub Atom. Aby uzyskać więcej informacji, zobacz Wstawianie i aktualizowanie jednostek.
Reakcja
Odpowiedź zawiera kod stanu HTTP i zestaw nagłówków odpowiedzi.
Kod stanu
Pomyślna operacja zwraca kod stanu 204 (Brak zawartości). Aby uzyskać informacje o kodach stanu, zobacz Kody stanu i błędów oraz Kody błędów usługi Table Storage.
Nagłówki odpowiedzi
Odpowiedź na tę operację zawiera następujące nagłówki. Odpowiedź może również zawierać dodatkowe standardowe nagłówki HTTP. Wszystkie standardowe nagłówki są zgodne ze specyfikacją protokołu HTTP/1.1.
Nagłówek odpowiedzi | Opis |
---|---|
ETag |
Element ETag dla jednostki. |
x-ms-request-id |
Ten nagłówek jednoznacznie identyfikuje wykonane żądanie i może służyć do rozwiązywania problemów z żądaniem. Aby uzyskać więcej informacji, zobacz Rozwiązywanie problemów z operacjami interfejsu API. |
x-ms-version |
Wskazuje wersję usługi Table Storage używaną do uruchomienia żądania. Ten nagłówek jest zwracany w przypadku żądań wysyłanych w wersji 2009-09-19 lub nowszej. |
Date |
Wartość daty/godziny UTC wskazująca godzinę, o której zainicjowano odpowiedź. Usługa generuje tę wartość. |
x-ms-client-request-id |
Ten nagłówek służy do rozwiązywania problemów z żądaniami i odpowiadającymi im odpowiedziami. Wartość tego nagłówka jest równa wartości nagłówka x-ms-client-request-id , jeśli jest obecna w żądaniu. Wartość jest najwyżej 1024 widocznymi znakami ASCII.
x-ms-client-request-id Jeśli nagłówek nie istnieje w żądaniu, ten nagłówek nie będzie obecny w odpowiedzi. |
Treść odpowiedzi
Brak.
Przykładowa odpowiedź
Response Status:
HTTP/1.1 204 No Content
Response Headers:
Connection: Keep-Alive
Content-Length: 0
Cache-Control: no-cache
Date: Mon, 25 Nov 2013 19:06:47 GMT
ETag: W/"0x5B168C7B6E589D2"
x-ms-version: 2013-08-15
DataServiceVersion: 1.0;NetFx
MaxDataServiceVersion: 2.0;NetFx
Server: Windows-Azure-Table/1.0 Microsoft-HTTPAPI/2.0
Autoryzacja
Właściciel konta może wykonać tę operację. Ponadto każda osoba z sygnaturą dostępu współdzielonego, która ma uprawnienia do wykonania tej operacji, może to zrobić.
Uwagi
Usługa Table Storage nie sprawia, że wartości właściwości są null
trwałe. Określenie właściwości z wartością null
jest równoważne pomijaniu tej właściwości w żądaniu. Operacja aktualizuje tylko właściwości z wartościami niebędącyminull
wartościami Merge Entity
.
Nie można usunąć właściwości za pomocą Merge Entity
operacji. Jeśli musisz to zrobić, zastąp jednostkę przez wywołanie operacji Aktualizuj jednostkę.
Podczas scalania jednostki należy określić PartitionKey
właściwości systemu i RowKey
w ramach operacji scalania.
ETag
Jednostka zapewnia domyślną, optymistyczną współbieżność dla operacji scalania. Wartość ETag
jest nieprzezroczysta i nie powinna być odczytywana ani polegana. Przed rozpoczęciem operacji scalania usługa Table Storage sprawdza, czy bieżąca ETag
wartość jednostki jest identyczna ETag
z wartością dołączoną do żądania w nagłówku If-Match
. Jeśli wartości są identyczne, usługa Table Storage określa, że jednostka nie została zmodyfikowana od czasu jej pobrania, a operacja scalania jest kontynuowana.
Jeśli jednostka ETag
różni się od określonego w żądaniu scalania, operacja scalania kończy się niepowodzeniem z kodem stanu 412 (Niepowodzenie warunku wstępnego). Ten błąd wskazuje, że jednostka została zmieniona na serwerze od czasu jej pobrania. Aby rozwiązać ten błąd, pobierz jednostkę i ponownie prześlij żądanie.
Aby wymusić bezwarunkową operację scalania, ustaw wartość If-Match
nagłówka na symbol wieloznaczny (*) na żądanie. Przekazanie tej wartości do operacji spowoduje zastąpienie domyślnej, optymistycznej współbieżności i zignorowanie wszelkich niezgodności wartości ETag
.
If-Match
Jeśli w żądaniu brakuje nagłówka w wersji 2011-08-18 lub nowszej, usługa wykonuje operację Insert Or Merge Entity (upsert). W wersjach wcześniejszych niż 2011-08-18 usługa zwraca kod stanu 400 (nieprawidłowe żądanie).
Każda aplikacja, która może autoryzować i wysyłać HTTP MERGE
żądanie, może scalić jednostkę. Aby uzyskać więcej informacji na temat konstruowania zapytania przy użyciu programu HTTP MERGE
, zobacz Dodawanie, modyfikowanie i usuwanie jednostek.
Aby uzyskać informacje na temat wykonywania operacji scalania wsadowego, zobacz Wykonywanie transakcji grupy jednostek.
Zobacz też
Aktualizowanie jednostki
Autoryzowanie żądań do usługi Azure Storage
Ustawianie nagłówków wersji usługi danych OData
Kody stanu i błędów
Kody błędów usługi Table Storage