全部產品
Search
文件中心

Tablestore:讀取單行資料

更新時間:Aug 13, 2026

Go SDK 可根據完整主鍵讀取寬表模型資料表中的一行資料。

前提條件

安裝Tablestore Go SDK並初始化用戶端。

功能說明

調用 GetRow 根據完整主鍵讀取一行資料。可以限定返回的屬性列、資料版本和版本時間範圍,也可以使用過濾器篩選屬性列。

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

以下樣本讀取 example_table 中主索引值為 row1 的一行資料。

primaryKey := &tablestore.PrimaryKey{}
primaryKey.AddPrimaryKeyColumn("id", "row1")

request := &tablestore.GetRowRequest{
    SingleRowQueryCriteria: &tablestore.SingleRowQueryCriteria{
        TableName:  "example_table",
        PrimaryKey: primaryKey,
        MaxVersion: 1,
    },
}

response, err := client.GetRow(request)
if err != nil {
    log.Fatal(err)
}

fmt.Println(response.PrimaryKey)
fmt.Println(response.Columns)

參數說明

GetRowRequest 包含以下參數。

名稱

類型

說明

SingleRowQueryCriteria(必選)

*SingleRowQueryCriteria

單行讀取條件。

單行讀取條件

SingleRowQueryCriteria 包含以下參數。

名稱

類型

說明

TableName(必選)

string

資料表名稱。

PrimaryKey(必選)

*PrimaryKey

完整行主鍵。讀取包含自增主鍵列的行時,也必須提供自增列的實際值。

MaxVersion(可選)

int32

最多返回的版本數。MaxVersion 和 TimeRange 至少設定一個。

TimeRange(可選)

*TimeRange

版本時間範圍,包括起始時間、結束時間或指定版本,單位為毫秒。MaxVersion 和 TimeRange 至少設定一個。

ColumnsToGet(可選)

[]string

要返回的屬性列名稱。未設定時返回所有屬性列。同時設定 ColumnsToGet 和 Filter 時,先按 ColumnsToGet 選擇屬性列,再使用 Filter 對選擇後的屬性列進行過濾。如果 Filter 引用的屬性列不在 ColumnsToGet 中,則按該屬性列不存在處理,是否過濾該行由過濾器的 FilterIfMissing 參數決定。

Filter(可選)

ColumnFilter

屬性列過濾器。更多資訊,請參見過濾器。

StartColumn(可選)

*string

屬性列名稱範圍的起始列,結果包含該列。

EndColumn(可選)

*string

屬性列名稱範圍的結束列,結果不包含該列。

TransactionId(可選)

*string

局部事務 ID。僅在局部事務內讀取資料時設定。更多資訊,請參見局部事務。

傳回值

GetRowResponse 包含以下商務資訊。如果指定行不存在,響應不包含主鍵和屬性列。

欄位

類型

說明

PrimaryKey

PrimaryKey

行主鍵。

Columns

[]*AttributeColumn

返回的屬性列及其值和版本號碼。

情境樣本

讀取指定時間範圍內的資料版本

以下樣本讀取目前時間往前一天內的資料版本。

now := time.Now().UnixMilli()
request.SingleRowQueryCriteria.MaxVersion = 0
request.SingleRowQueryCriteria.TimeRange = &tablestore.TimeRange{
    Start: now - 24*60*60*1000,
    End:   now,
}