Skip to main content
Version: 5.1.0

get_table_columns

所属分类:数据资产感知 · Tool 名称get_table_columns

功能说明

实时连接指定数据源,获取某张表的列元数据列表,包括列名、数据类型、是否主键、是否可空、列注释。是「确认上游表结构」场景的核心 Tool——例如新增字段前确认上游是否已有该字段、编写同步 SQL 前核对列类型。

输入参数

参数类型必填说明
datasourceNamestring数据源唯一性名称(可通过 list_datasources 获取)
tableNamestring表名(可通过 list_tables 获取)

输出结果

业务 JSON 直返(非信封结构),字段说明如下:

字段类型说明
datasourceNamestring数据源名称(回显入参)
tableNamestring表名(回显入参)
colsMetaarray表的列元数据列表
colsMeta[].namestring列名
colsMeta[].typeobject列数据类型描述对象,见下表
colsMeta[].pkboolean是否为主键列
colsMeta[].nullableboolean是否可为空
colsMeta[].commentstring列注释(无注释时该字段不出现)

colsMeta[].type 子字段:

字段类型说明
typeNamestring类型名称,如 VARCHARBIGINTDECIMAL
columnSizeinteger列长度(如 VARCHAR(64) 的 64),不适用时不出现
unsignedboolean数值列是否为无符号(仅允许非负数),不适用时不出现
decimalDigitsinteger浮点 / 定点类型的小数位数,不适用时不出现

返回示例

{
"datasourceName": "order_mysql",
"tableName": "orders",
"colsMeta": [
{
"name": "order_id",
"type": { "typeName": "BIGINT", "columnSize": 20, "unsigned": true },
"pk": true,
"nullable": false,
"comment": "订单主键"
},
{
"name": "discount_rate",
"type": { "typeName": "DECIMAL", "columnSize": 5, "decimalDigits": 2 },
"pk": false,
"nullable": true
}
]
}

错误返回

情况表现
datasourceName / tableName 为空MCP 层 isError: true,内容为参数错误描述文本
数据源不存在MCP 层 isError: true,内容类似 未找到数据源: order_mysql
获取元数据失败(表不存在、连接异常等)MCP 层 isError: true,内容类似 获取表列元数据失败: <原因>

注意点

  1. 实时查询:会真实连接目标数据源读取元数据。
  2. 表名的写法需符合数据源插件的解析规则(一般为纯表名;部分数据源支持 db.table 形式)。
  3. 返回列的顺序与数据库中的列定义顺序一致。

典型用法

在 Hermes 中的提问示例:

上游 MySQL 的 orders 表有 discount_rate 这个字段吗?是什么类型?
使用 get_table_columns 工具:查一下 order_mysql 库 orders 表的主键是哪个字段