Todos os produtos
Search
Central de documentação

Tablestore:Atualizar uma linha

Última atualização: Jul 08, 2026

Localize uma linha pela chave primária e adicione, modifique ou exclua colunas de atributo incrementalmente. Opcionalmente, especifique um número de versão. O SDK for Java usa UpdateRow para atualizações atômicas de linha única. Casos de uso comuns incluem atualização de campos de status, arquivamento de valores históricos e exclusão lógica.

Pré-requisitos

Instale o Tablestore SDK for Java e inicialize uma instância OTSClient.

Descrição

public UpdateRowResponse updateRow(UpdateRowRequest updateRowRequest) throws TableStoreException, ClientException

Localize uma linha pela chave primária e atualize as colunas de atributo incrementalmente. Use RowUpdateChange para armazenar a chave primária e as operações de alteração de coluna. Obtenha a unidade de capacidade consumida (CU) com response.getConsumedCapacity().

O exemplo a seguir atualiza a linha row1 na tabela de dados update_row_demo e define 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"));

UpdateRowResponse response = client.updateRow(new UpdateRowRequest(rowUpdateChange));
System.out.println("RequestId: " + response.getRequestId());
System.out.println("Write CU: " + response.getConsumedCapacity().getCapacityUnit().getWriteCapacityUnit());

Parâmetros

O objeto RowUpdateChange contém os dados de atualização de uma linha. Veja a descrição de cada parâmetro abaixo.

Nome

Tipo

Descrição

tableName (obrigatório)

String

Nome da tabela de dados a atualizar.

primaryKey (obrigatório)

PrimaryKey

Informações da chave primária, incluindo nomes e valores das colunas.

  • Tipos de dados compatíveis com colunas de chave primária: STRING, INTEGER e BINARY.

  • A quantidade e os tipos de colunas de chave primária devem corresponder ao esquema da tabela.

columnsToUpdate (obrigatório)

List<Pair<Column, Type>>

Lista de alterações nas colunas de atributo. Chame os métodos a seguir de RowUpdateChange para adicionar operações:

  • put: adiciona ou modifica uma coluna de atributo.

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

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

Para exemplos de código de cada operação, consulte a seção Cenários.

condition (opcional)

Condition

Define a condição de gravação. Para obter detalhes, consulte Atualização condicional.

Cenários

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

Passe um terceiro argumento para put e especifique o número de versão (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 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));

Referências