Go SDK 可查询映射表的主键和关联索引的名称、字段及索引类型等信息。
前提条件
安装Tablestore Go SDK并初始化客户端。SQL 查询功能需要 1.7.4 及以上版本,建议使用最新版本。
功能说明
调用 SQLQuery 方法执行 SHOW INDEX 语句,查询指定映射表的主键和关联索引信息。
func (client *TableStoreClient) SQLQuery(request *SQLQueryRequest) (*SQLQueryResponse, error)
查询数据表映射时,结果包含主键,以及数据表下二级索引和多元索引的字段信息。查询多元索引映射时,结果仅包含主键和指定多元索引的字段信息。
以下示例查询 example_table 的索引信息。
request := &tablestore.SQLQueryRequest{
Query: "SHOW INDEX IN example_table",
}
response, err := client.SQLQuery(request)
if err != nil {
log.Fatalf("SQLQuery failed: %v", err)
}
for response.ResultSet.HasNext() {
row := response.ResultSet.Next()
keyName, _ := row.GetStringByName("Key_name")
columnName, _ := row.GetStringByName("Column_name")
indexType, _ := row.GetStringByName("Index_type")
fmt.Printf("%s, %s, %s\n", keyName, columnName, indexType)
}
参数说明
SQLQueryRequest 包含以下参数。
|
名称 |
类型 |
说明 |
|
Query(必选) |
string |
要执行的 |
返回值
ResultSet 中每一行对应一个主键、二级索引或多元索引字段,包含以下字段。
|
字段 |
类型 |
说明 |
|
Table |
String |
映射表名称。 |
|
Non_unique |
Integer |
是否允许索引值重复。 |
|
Key_name |
String |
索引名称。主键返回 |
|
Seq_in_index |
Integer |
字段在索引中的顺序,从 1 开始。 |
|
Column_name |
String |
索引字段名称。 |
|
Is_defined_column |
String |
字段是否为数据表预定义列。 |
|
Search_type |
String |
多元索引字段的查询类型。 |
|
Collation |
String |
字段在索引中的排序方式。 |
|
Cardinality |
Integer |
索引中不同值数量的估算值。 |
|
Sub_part |
Integer |
索引字段的前缀长度。 |
|
Packed |
String |
索引的压缩方式。 |
|
Null |
String |
字段是否允许为空。 |
|
Index_type |
String |
索引类型。全局二级索引返回 |
|
Comment |
String |
索引备注。 |
|
Index_comment |
String |
索引注释。 |
|
Visible |
String |
索引是否可见。 |
|
Expression |
String |
索引表达式。 |