预定义列操作

本文介绍如何通过Go SDK添加或删除数据表的预定义列。

注意事项

  • 单个数据表默认最大支持添加32个预定义列。如果业务需求超过限制,请提交工单联系我们。

  • 如果预定义列被二级索引引用,需要删除二级索引后才能删除预定义列。

前提条件

初始化Tablestore Client

添加预定义列

方法说明

func (tableStoreClient *TableStoreClient) AddDefinedColumn(request *AddDefinedColumnRequest) (*AddDefinedColumnResponse, error)

AddDefinedColumnRequest参数说明

  • TableName(必选)string:数据表名称。

  • DefinedColumns(必选)[]*DefinedColumnSchema:预定义列信息。每个预定义列包含以下参数。

    名称

    类型

    说明

    Name(必选)

    string

    预定义列名称。

    ColumnType(必选)

    DefinedColumnType

    预定义列数据类型。

    • 数据类型包括STRING、INTEGER、BINARY、DOUBLEBOOLEAN。

示例代码

以下示例代码在test_table表中添加一个String类型的预定义列name。

func AddDefinedColumnSample(client *tablestore.TableStoreClient) {
    addDefinedColumnRequest := new(tablestore.AddDefinedColumnRequest)
    addDefinedColumnRequest.AddDefinedColumn("name", tablestore.DefinedColumn_STRING)
    addDefinedColumnRequest.TableName = "test_table"
    _, err := client.AddDefinedColumn(addDefinedColumnRequest)
    if err != nil {
        fmt.Println("Failed to add DefinedColumn with error:", err)
    } else {
        fmt.Println("Add DefinedColumn finished.")
    }
}

删除预定义列

方法说明

func (tableStoreClient *TableStoreClient) DeleteDefinedColumn(request *DeleteDefinedColumnRequest) (*DeleteDefinedColumnResponse, error)

DeleteDefinedColumnRequest参数说明

  • TableName(必选)string:数据表名称。

  • DefinedColumns(必选)[]string:预定义列信息。

示例代码

以下示例代码在test_table表中删除预定义列name。

func DeleteDefinedColumnSample(client *tablestore.TableStoreClient) {
    deleteDefinedColumnRequest := new(tablestore.DeleteDefinedColumnRequest)
    deleteDefinedColumnRequest.DefinedColumns = []string{"name"}
    deleteDefinedColumnRequest.TableName = "test_table"
    _, err := client.DeleteDefinedColumn(deleteDefinedColumnRequest)
    if err != nil {
        fmt.Println("Failed to delete DefinedColumn with error:", err)
    } else {
        fmt.Println("Delete DefinedColumn finished.")
    }
}