Todos os produtos
Search
Central de documentação

Tablestore:Usar o recurso de contador atômico

Última atualização: Jul 03, 2026

Se sua aplicação online precisar de um contador, use o recurso de contador atômico. Para isso, especifique uma coluna como contador atômico e execute operações de contador atômico nessa coluna.

Pré-requisitos

Observações de uso

  • Contadores atômicos são compatíveis apenas com colunas do tipo INTEGER.

  • Se a coluna definida como contador atômico não existir antes da gravação dos dados, seu valor padrão será 0. Se a coluna especificada não for do tipo INTEGER, ocorrerá um erro OTSParameterInvalid.

  • Atualize o contador atômico com números positivos ou negativos, mas evite estouro de inteiro. Em caso de estouro, o sistema retornará um erro OTSParameterInvalid.

  • Por padrão, a resposta à solicitação de atualização de linha não inclui o valor do contador atômico. Configure o retorno do valor atualizado conforme necessário.

  • Não defina uma coluna como contador atômico e a modifique na mesma solicitação de atualização. Por exemplo, ao configurar a Coluna A como contador atômico, não execute simultaneamente outras operações nela, como sobrescrita ou exclusão.

  • Envie uma solicitação BatchWriteRow para realizar múltiplas atualizações na mesma linha. Contudo, ao usar operações de contador atômico, realize apenas uma operação de atualização por linha nessa solicitação.

  • Atualize apenas a versão mais recente do contador atômico. Não altere versões específicas. Após a atualização, o sistema insere automaticamente uma nova versão dos dados no contador atômico da linha.

Operações de API

A operação updateRow inclui funcionalidades relacionadas ao contador atômico. A tabela a seguir descreve essas operações.

Operação

Descrição

updateOfAttributeColumns

Define INCREMENT como tipo de atualização para aumentar ou diminuir o valor de uma coluna por um número inteiro específico.

returnContent

Especifica o nome da coluna cujo valor deve ser retornado entre aquelas envolvidas na operação de contador atômico.

Parâmetro

Parâmetro

Descrição

tableName

Nome da tabela de dados.

columnName

Nome da coluna para execução das operações de contador atômico. Apenas colunas INTEGER são compatíveis com essa funcionalidade.

value

Valor incremental ou decremental a ser aplicado à coluna.

returnColumns

Indica o nome da coluna cujo valor deve ser retornado dentre as colunas processadas pelo contador atômico.

returnType

Defina o tipo de retorno como TableStore.ReturnType.AfterModify para obter os valores das colunas após a execução das operações de contador atômico.

Exemplo

O código de exemplo a seguir demonstra como usar INCREMENT como tipo de atualização para modificar o valor de uma coluna de atributo INTEGER durante uma chamada à operação updateRow:

var params = {
  tableName: "<Your-Table-Name>",
  condition: new TableStore.Condition(TableStore.RowExistenceExpectation.EXPECT_EXIST, null),
  primaryKey: [{'pk0': Long.fromNumber(1)}],
  // Specify the price column as an atomic counter and increase the value of the atomic counter by 10. You cannot specify the timestamp. 
  updateOfAttributeColumns: [
    {'INCREMENT': [{'price': Long.fromNumber(10)}]}
  ],
  // Set the return type to TableStore.ReturnType.AfterModify and return the values of the columns on which operations are performed to implement atomic counter. 
  returnContent: {
    returnColumns: ["price"],
    returnType: TableStore.ReturnType.AfterModify
  }
};

client.updateRow(params,
  function (err, data) {
    if (err) {
      console.log('error:', err);
      return;
    }

    console.log('success:', JSON.stringify(data, null, 2));
  });