为数据表增加预定义列或删除数据表的预定义列。设置预定义列后,在创建全局二级索引时将预定义列作为索引表的索引列或者属性列。

前提条件

  • 已初始化Client,详情请参见初始化
  • 已创建数据表。

增加预定义列

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

  • 参数
    参数 说明
    TableName 数据表名称。
    DefinedColumns 为数据表预先定义一些非主键列以及其类型,可以作为索引表的属性列或索引列。包含如下设置:
    • Name:预定义列名称。
    • ColumnType:预定义列的数据类型。
  • 示例

    为sampleTable数据表增加预定义列,预定义列分别为definedColumnName01(String类型)、definedColumnName02(INTEGER类型)、definedColumnName03(String类型)。

    func AddDefinedColumn() {
        client := new(tablestore.TableStoreClient)
        addDefinedColumnRequest := new(tablestore.AddDefinedColumnRequest)
        addDefinedColumnRequest.AddDefinedColumn("definedColumnName01",tablestore.DefinedColumn_STRING)
        addDefinedColumnRequest.AddDefinedColumn("definedColumnName02",tablestore.DefinedColumn_INTEGER)
        addDefinedColumnRequest.AddDefinedColumn("definedColumnName03",tablestore.DefinedColumn_STRING)
        addDefinedColumnRequest.TableName = "sampleTable"
        _, err := client.AddDefinedColumn(addDefinedColumnRequest)
        if (err != nil) {
            fmt.Println("Failed to Add DefinedColumn with error:", err)
        } else {
            fmt.Println("Add DefinedColumn finished")
        }
    }

删除预定义列

删除数据表上不需要的预定义列。

  • 参数
    参数 说明
    TableName 数据表名称。
    DefinedColumns 预定义列名称。
  • 示例

    删除sampleTable数据表的预定义列definedColumnName01和definedColumnName02。

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