预定义列操作

预定义列是为数据表预先定义一些非主键列以及其类型。为数据表设置预定义列后,在创建二级索引时,您可以将预定义列作为索引表的索引列或者属性列。如果不再使用某些预定义列,您可以删除相应预定义列。

注意事项

  • 只有使用二级索引时才需要为数据表添加预定义列,使用多元索引时无需为数据表添加预定义列。

  • 单个数据表默认最大支持添加32个预定义列。如果不满足使用需求,请提交工单申请调整。

前提条件

增加预定义列

使用二级索引时,如果未设置预定义列或者预定义列不满足需求,则您可以为数据表增加预定义列。

说明

您也可以在创建数据表时添加预定义列。具体操作,请参见创建数据表

参数

参数

是否必选

说明

TableName

数据表名称。

DefinedColumns

为数据表预先定义一些非主键列以及其类型,可以作为索引表的属性列或索引列。包含如下设置:

  • Name:预定义列名称。

  • ColumnType:预定义列的数据类型。

示例

以下示例用于为指定数据表增加预定义列,预定义列分别为defcol1(String类型)、defcol2(INTEGER类型)、defcol3(String类型)。

func AddDefinedColumn(client *tablestore.TableStoreClient, tableName string) {
    addDefinedColumnRequest := new(tablestore.AddDefinedColumnRequest)
    addDefinedColumnRequest.AddDefinedColumn("defcol1",tablestore.DefinedColumn_STRING)
    addDefinedColumnRequest.AddDefinedColumn("defcol2",tablestore.DefinedColumn_INTEGER)
    addDefinedColumnRequest.AddDefinedColumn("defcol3",tablestore.DefinedColumn_STRING)
    addDefinedColumnRequest.TableName = tableName
    _, err := client.AddDefinedColumn(addDefinedColumnRequest)
    if (err != nil) {
        fmt.Println("Failed to Add DefinedColumn with error:", err)
    } else {
        fmt.Println("Add DefinedColumn finished")
    }
}

删除预定义列

删除数据表上不需要的预定义列。支持一次删除多个预定义列。

参数

参数

是否必选

说明

TableName

数据表名称。

DefinedColumns

预定义列名称。

示例

以下示例用于删除指定数据表的预定义列defcol1defcol2。

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

相关文档