全部產品
Search
文件中心

Tablestore:更新表配置

更新時間:Aug 12, 2026

Go SDK 可更新寬表模型資料表的資料生命週期、最大版本數、有效版本偏差、更新許可權、Stream 和預留讀寫輸送量配置。

前提條件

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

功能說明

調用 UpdateTable 更新指定資料表的表屬性、Stream 或預留讀寫輸送量。每次請求必須至少設定一類配置。

func (tableStoreClient *TableStoreClient) UpdateTable(request *UpdateTableRequest) (*UpdateTableResponse, error)

以下樣本更新 example_table 的資料生命週期、最大版本數、有效版本偏差和更新許可權。

request := &tablestore.UpdateTableRequest{
    TableName: "example_table",
    TableOption: &tablestore.TableOption{
        TimeToAlive:               86400,
        MaxVersion:                3,
        DeviationCellVersionInSec: 86400,
        AllowUpdate:               proto.Bool(false),
    },
}

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

參數說明

UpdateTableRequest 包含以下參數。

名稱

類型

說明

TableName(必選)

string

資料表名稱。

TableOption(可選)

*TableOption

要更新的表屬性。

StreamSpec(可選)

*StreamSpecification

Stream 配置。

ReservedThroughput(可選)

*ReservedThroughput

預留讀寫輸送量配置。僅 CU 模式的高效能型執行個體支援設定非零值。

TableOption、StreamSpec 和 ReservedThroughput 必須至少設定一個。

表配置

TableOption 包含以下參數。

名稱

類型

說明

TimeToAlive(可選)

int

資料生命週期,單位為秒。設定為 -1 時資料永不到期;設定為其他值時,最小值為 86400(1 天),超出生命週期的資料將被自動清除。使用多元索引或二級索引時,需設定為 -1,或將 AllowUpdate 設定為 false。

MaxVersion(可選)

int

每個屬性列最多保留的版本數。使用多元索引或二級索引時必須設定為 1。

DeviationCellVersionInSec(可選)

int64

有效版本偏差,單位為秒。寫入資料的時間戳記與系統目前時間的差值必須在有效版本偏差範圍內。屬性列資料的有效版本範圍為 [max(資料寫入時間-有效版本偏差, 資料寫入時間-資料生命週期), 資料寫入時間+有效版本偏差)。

AllowUpdate(可選)

*bool

是否允許通過 UpdateRow 更新資料。設定為 false 時不允許更新資料。

重要

UpdateFullRow 只能在建立資料表時設定,不能通過 UpdateTable 修改。

Stream 配置

StreamSpec 的類型為 StreamSpecification,包含以下參數。

名稱

類型

說明

EnableStream(必選)

bool

是否開啟 Stream。

ExpirationTime(可選)

int32

增量日誌的保留時間長度,單位為小時,最大值為 168(7 天)。EnableStream 設定為 true 時必須設定。

重要

修改 ExpirationTime 參數時,必須同時將 EnableStream 設定為 true。否則會導致現有資料通道不可用,並影響表中多元索引的資料同步。

預留讀寫輸送量

ReservedThroughput 包含以下參數。

名稱

類型

說明

Readcap(可選)

int

預留讀輸送量,單位為 CU,預設值為 0。

Writecap(可選)

int

預留寫輸送量,單位為 CU,預設值為 0。

情境樣本

更新 Stream 配置

以下樣本為 example_table 開啟 Stream,並將增量日誌保留時間長度設定為 168 小時。

request := &tablestore.UpdateTableRequest{
    TableName: "example_table",
    StreamSpec: &tablestore.StreamSpecification{
        EnableStream:   true,
        ExpirationTime: 168,
    },
}

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