Todos os produtos
Search
Central de documentação

Tablestore:Atualizar uma linha

Última atualização: Aug 20, 2026

Use o Tablestore SDK for Java para adicionar, modificar ou excluir colunas de atributo em uma linha identificada pela chave primária completa.

Pré-requisitos

Instale o Tablestore SDK for Java e inicialize o cliente.

Descrição

Chame updateRow para atualizar uma linha identificada pela chave primária completa. Você pode adicionar ou modificar colunas de atributo, excluir uma versão específica ou todas as versões de uma coluna e usar contadores atômicos.

public UpdateRowResponse updateRow(UpdateRowRequest updateRowRequest) throws TableStoreException, ClientException

O exemplo a seguir atualiza a linha row1 na tabela de dados update_row_demo, definindo a coluna de atributo col1 como changed_val1.

String tableName = "update_row_demo";

PrimaryKeyBuilder primaryKeyBuilder = PrimaryKeyBuilder.createPrimaryKeyBuilder();
primaryKeyBuilder.addPrimaryKeyColumn("id", PrimaryKeyValue.fromString("row1"));
PrimaryKey primaryKey = primaryKeyBuilder.build();

RowUpdateChange rowUpdateChange = new RowUpdateChange(tableName, primaryKey);
rowUpdateChange.put("col1", ColumnValue.fromString("changed_val1"));

client.updateRow(new UpdateRowRequest(rowUpdateChange));

Parâmetros

UpdateRowRequest contém os seguintes parâmetros:

Nome

Tipo

Descrição

rowChange (obrigatório)

RowUpdateChange

Configurações para atualizar a linha.

transactionId (opcional)

String

ID da transação local. Defina este parâmetro apenas ao atualizar dados em uma transação local.

Para obter informações sobre como obter e usar o ID, consulte Use local transactions.

Alteração de linha

rowChange é do tipo RowUpdateChange e contém os seguintes parâmetros:

Nome

Tipo

Descrição

tableName (obrigatório)

String

Nome da tabela.

primaryKey (obrigatório)

PrimaryKey

Chave primária da linha. Especifique todas as colunas de chave primária na mesma ordem e com os mesmos tipos do esquema da tabela. As colunas de chave primária aceitam os tipos STRING, INTEGER e BINARY.

columnsToUpdate (obrigatório)

List<Pair<Column, RowUpdateChange.Type>>

Alterações nas colunas de atributo. Chame put, deleteColumn, deleteColumns ou increment para adicionar uma alteração.

condition (opcional)

Condition

Condição de atualização. Por padrão, o Tablestore não verifica se a linha existe.

Para saber como configurar a condição, consulte Use conditional updates.

returnType (opcional)

ReturnType

Tipo de retorno. O valor padrão é RT_NONE. Para contadores atômicos, defina este parâmetro como RT_AFTER_MODIFY para retornar os valores atualizados das colunas.

Para obter detalhes sobre a configuração de contadores atômicos, consulte Use atomic counters.

returnColumnNames (opcional)

Set<String>

Colunas de atributo cujos valores atualizados você deseja retornar. Este parâmetro aplica-se somente a contadores atômicos.

Métodos de alteração de coluna de atributo

Chame os métodos a seguir para adicionar alterações a columnsToUpdate:

  • put: Adiciona uma coluna de atributo ou grava uma nova versão. Permite especificar o número da versão dos dados.

  • deleteColumn: Exclui uma versão específica de uma coluna de atributo.

  • deleteColumns: Exclui todas as versões de uma coluna de atributo.

  • increment: Incrementa atomicamente uma coluna de atributo do tipo INTEGER.

Resposta

UpdateRowResponse contém o seguinte campo específico da operação:

Campo

Tipo

Descrição

row

Row

Colunas de atributo atualizadas, obtidas pela chamada a getRow. Este campo é retornado apenas quando returnType está definido como RT_AFTER_MODIFY.

Cenários

Gravar colunas de atributo com um número de versão especificado

Passe um terceiro argumento para put para especificar o número da versão (um timestamp em milissegundos) da coluna de atributo. Use essa abordagem para arquivar valores históricos associados ao tempo de negócio.

String tableName = "update_row_demo";

PrimaryKeyBuilder primaryKeyBuilder = PrimaryKeyBuilder.createPrimaryKeyBuilder();
primaryKeyBuilder.addPrimaryKeyColumn("id", PrimaryKeyValue.fromString("row1"));
PrimaryKey primaryKey = primaryKeyBuilder.build();

RowUpdateChange rowUpdateChange = new RowUpdateChange(tableName, primaryKey);
// Specify the version number (a millisecond timestamp) as the third argument.
long version = System.currentTimeMillis();
rowUpdateChange.put("col2", ColumnValue.fromString("val2"), version);

client.updateRow(new UpdateRowRequest(rowUpdateChange));

Excluir uma versão específica de uma coluna de atributo

Use deleteColumn para remover uma única versão de uma coluna de atributo e manter as demais versões intactas.

String tableName = "update_row_demo";

PrimaryKeyBuilder primaryKeyBuilder = PrimaryKeyBuilder.createPrimaryKeyBuilder();
primaryKeyBuilder.addPrimaryKeyColumn("id", PrimaryKeyValue.fromString("row1"));
PrimaryKey primaryKey = primaryKeyBuilder.build();

RowUpdateChange rowUpdateChange = new RowUpdateChange(tableName, primaryKey);
// Delete the col2 value at the specified version (a millisecond timestamp).
rowUpdateChange.deleteColumn("col2", 1747893563831L);

client.updateRow(new UpdateRowRequest(rowUpdateChange));

Excluir uma coluna de atributo inteira

Use deleteColumns para excluir todas as versões de uma coluna de atributo em uma única operação.

String tableName = "update_row_demo";

PrimaryKeyBuilder primaryKeyBuilder = PrimaryKeyBuilder.createPrimaryKeyBuilder();
primaryKeyBuilder.addPrimaryKeyColumn("id", PrimaryKeyValue.fromString("row1"));
PrimaryKey primaryKey = primaryKeyBuilder.build();

RowUpdateChange rowUpdateChange = new RowUpdateChange(tableName, primaryKey);
// Delete all versions of the col2 attribute column.
rowUpdateChange.deleteColumns("col2");

client.updateRow(new UpdateRowRequest(rowUpdateChange));