更新映射表属性列

更新时间:
复制 MD 格式

Go SDK 可为映射表添加或删除属性列。

前提条件

安装Tablestore Go SDK并初始化客户端。SQL 查询功能需要 1.7.4 及以上版本,建议使用最新版本。

注意事项

  • 只有通过 CREATE TABLE 语句创建的映射表支持 ALTER TABLE。通过 DESCRIBE 等操作自动绑定的映射表不支持更新属性列。

  • 每条 ALTER TABLE 语句仅支持添加或删除一个属性列。

  • 该操作只更新映射表 Schema,不会更新表格存储的数据存储 Schema,也不支持添加或删除主键列。

  • 执行语句后,SQL 引擎异步刷新映射表,最多需要 30 秒。刷新期间查询全部属性列时可能不会返回新添加的列。

  • 如需修改已有属性列的定义,先删除原属性列,再按新定义添加。

功能说明

调用 SQLQuery 方法执行 ALTER TABLE 语句,为映射表添加或删除属性列。

func (client *TableStoreClient) SQLQuery(request *SQLQueryRequest) (*SQLQueryResponse, error)

以下示例为 example_table 添加 new_column 属性列。

request := &tablestore.SQLQueryRequest{
    Query: "ALTER TABLE example_table ADD COLUMN new_column BIGINT",
}
if _, err := client.SQLQuery(request); err != nil {
    log.Fatalf("SQLQuery failed: %v", err)
}

参数说明

SQLQueryRequest 包含以下参数。

名称

类型

说明

Query(必选)

string

要执行的 ALTER TABLE 语句。添加属性列时使用 ADD COLUMN,删除属性列时使用 DROP COLUMN

场景示例

删除属性列

以下示例删除 example_table 中的 new_column 属性列。

request := &tablestore.SQLQueryRequest{
    Query: "ALTER TABLE example_table DROP COLUMN new_column",
}
if _, err := client.SQLQuery(request); err != nil {
    log.Fatalf("SQLQuery failed: %v", err)
}