Todos os produtos
Search
Central de documentação

Tablestore:Read a single row

Última atualização: Jun 30, 2026

Leia uma única linha de uma tabela do Tablestore usando o SDK para Go.

Importante

Forneça uma chave primária completa em cada leitura, inclusive o valor de qualquer coluna de chave primária com incremento automático.

Pré-requisitos

Inicializar um cliente do Tablestore

Método

func (tableStoreClient *TableStoreClient) GetRow(request *GetRowRequest) (*GetRowResponse, error)

Parâmetros de GetRowRequest

  • SingleRowQueryCriteria (Obrigatório)*SingleRowQueryCriteria: Critérios para leitura de linha única. Inclui os seguintes subparâmetros.

    Parâmetro

    Tipo

    Descrição

    TableName (Obrigatório)

    string

    Nome da tabela.

    PrimaryKey (Obrigatório)

    *PrimaryKey

    Chave primária da linha de destino. Deve conter nome e valor para cada coluna de chave primária.

    • As colunas de chave primária aceitam STRING, INTEGER ou BINARY.

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

    MaxVersion (Opcional)

    int32

    Número máximo de versões de célula a retornar por coluna.

    • Especifique este parâmetro ou TimeRange.

    • Se houver mais versões que o limite permitido, o sistema retorna apenas as mais recentes em ordem decrescente de timestamp.

    TimeRange (Opcional)

    *TimeRange

    Intervalo de tempo para seleção das versões de célula a retornar.

    • Especifique este parâmetro ou MaxVersion.

    • Colunas de atributo podem armazenar múltiplas versões. O sistema retorna somente as versões dentro do intervalo especificado.

    ColumnsToGet (Opcional)

    []string

    Nomes das colunas a retornar. É possível incluir colunas de chave primária e de atributo.

    • Se omitido, a resposta inclui a linha inteira.

    • Se a linha existir, mas não possuir nenhuma das colunas solicitadas, a resposta retorna apenas a chave primária.

    Filter (Opcional)

    ColumnFilter

    Condição de filtro. Consulte Filtro.

    • Ao usar ColumnsToGet e Filter simultaneamente, o Filter é aplicado primeiro à linha. Em caso de correspondência, a resposta retorna somente as colunas definidas em ColumnsToGet.

    TransactionId (Opcional)

    *string

    ID de transação local. Consulte Transação local.

Código de exemplo

Este exemplo lê uma linha com valor de chave primária row1.

func GetRowSample(client *tablestore.TableStoreClient) {
    // Construct the primary key.
    getPk := new(tablestore.PrimaryKey)
    getPk.AddPrimaryKeyColumn("id", "row1")

    // Define the query criteria.
    criteria := new(tablestore.SingleRowQueryCriteria)
    criteria.TableName = "test_table"
    criteria.PrimaryKey = getPk
    criteria.MaxVersion = 1

    // Call the GetRow method to read the row.
    getRowRequest := new(tablestore.GetRowRequest)
    getRowRequest.SingleRowQueryCriteria = criteria
    response, err := client.GetRow(getRowRequest)
    if err != nil {
        fmt.Println("Get row failed with error: ", err)
    } else {
        fmt.Printf("RequestId: %s \n", response.RequestId)
        fmt.Printf("Read CU Cost: %d \n", response.ConsumedCapacityUnit.Read)
        fmt.Printf("Write CU Cost: %d \n", response.ConsumedCapacityUnit.Write)
        fmt.Printf("Row Data: %v ", response.PrimaryKey)
        for _, Column := range response.Columns {
            fmt.Printf("%v ", Column)
        }
    }
}
  • Para limitar os resultados a um intervalo de tempo de versão, defina TimeRange. O sistema retorna apenas as versões nesse intervalo.

    // Set the time range to the last 24 hours.
    timeRange := new(tablestore.TimeRange)
    timeRange.Start = int64(time.Now().Unix() * 1000 - 86400 * 1000)
    timeRange.End = int64(time.Now().Unix() * 1000) 
    criteria.TimeRange = timeRange;
  • Retorne apenas colunas de atributo específicas.

    criteria.AddColumnToGet("col2")

Tópicos relacionados