A operação UpdateRow atualiza os dados de uma linha especificada.
Se a linha especificada não existir, o sistema insere uma nova linha. Caso a linha já exista, o UpdateRow adiciona, modifica ou exclua os valores das colunas de atributo especificadas conforme a solicitação.
Estrutura da mensagem de solicitação
message UpdateRowRequest {
required string table_name = 1;
required bytes row_change = 2;
required Condition condition = 3;
optional ReturnContent return_content = 4;
optional string transaction_id = 5;
}
|
Name |
Type |
Required |
Description |
|
table_name |
string |
Yes |
Nome da tabela a atualizar. |
|
row_change |
bytes |
Yes |
Dados de atualização, incluindo a chave primária e as colunas de atributo, codificados no formato PlainBuffer. Para mais informações, consulte PlainBuffer. O Tablestore adiciona, modifica ou exclua os valores das colunas de atributo especificadas com base no UpdateType em row_change. As colunas de atributo não incluídas em row_change permanecem inalteradas. Valores válidos para UpdateType:
|
|
condition |
Yes |
Indica se o sistema deve verificar a existência da linha antes da atualização. Valores válidos:
|
|
|
return_content |
No |
Tipo de dado retornado após uma gravação bem-sucedida. Há suporte apenas para o retorno da chave primária, destinado principalmente ao recurso de coluna de chave primária com incremento automático. |
|
|
transaction_id |
string |
No |
ID da transação local. Defina este parâmetro ao usar o recurso de transação local. |
Estrutura da mensagem de resposta
message UpdateRowResponse {
required ConsumedCapacity consumed = 1;
optional bytes row = 2;
}
|
Name |
Type |
Description |
|
consumed |
Unidades de capacidade consumidas pela operação. Para mais informações, consulte Consumo de unidades de capacidade. |
|
|
row |
bytes |
Dados retornados quando return_content está definido. Se return_content não estiver configurado ou nenhum valor for retornado, este parâmetro será NULL. Os dados retornados são codificados no formato PlainBuffer. Para mais informações sobre o PlainBuffer, consulte PlainBuffer. |
Uso de SDK
Use um SDK de uma das linguagens a seguir para atualizar uma única linha.
Consumo de unidades de capacidade
-
Se a linha não existir, as unidades de capacidade consumidas dependerão da configuração de verificação de condição.
IGNORE: As CUs de gravação consumidas correspondem à soma do tamanho dos dados da chave primária e da coluna de atributo, dividida por 4 KB e arredondada para cima. Para colunas de atributo em exclusão, apenas o comprimento do nome da coluna é contabilizado no tamanho dos dados.
EXPECT_EXIST: A operação falha e consome 1 CU de gravação e 1 CU de leitura.
-
Se a linha existir, o consumo de unidades de capacidade variará conforme a definição de verificação de condição.
IGNORE: O consumo de CUs de gravação equivale à soma do tamanho dos dados da chave primária e da coluna de atributo, dividida por 4 KB com arredondamento para cima. Nas exclusões de colunas de atributo, considera-se apenas o tamanho do nome da coluna para o cálculo.
EXPECT_EXIST: Consome as mesmas CUs de gravação do modo IGNORE, além de CUs de leitura adicionais. As CUs de leitura consumidas correspondem ao tamanho dos dados da chave primária dividido por 4 KB e arredondado para cima.
Para mais detalhes sobre o cálculo do tamanho dos dados, consulte Preços.
Se a solicitação atingir o tempo limite e os resultados forem indefinidos, as CUs podem ou não ser consumidas.
Em caso de erro interno (código de status HTTP: 5xx), nenhuma unidade de capacidade é consumida. Para outros erros, consomem-se 1 CU de gravação e 1 CU de leitura.