问答 查看内容
返回列表

数据库表字段有注释,但创建数据集时使用数据库表注释提示为空

32 1
发表于 3 天前 | 查看全部 阅读模式
在数据库中创建表时,字段和表都已经配置了 `comment` 注释。创建 BI 数据集时,在“确认数据表信息”步骤点击“使用数据库表的注释”,页面提示“数据库表注释为空,请确认数据集名称后输入”。

数据库建表语句中字段后有字段注释,表定义结束后也有表注释,例如:

```sql
create table example_report (
  ...
  shop_id varchar(50) not null comment '字段说明',
  primary key (report_date, batch_time, shop_id)
)
comment '表说明';
```

期望确认:为什么数据库里已经有表注释,但 BI 获取到的表注释为空?

评论1

观小程楼主Lv.1 发表于 3 天前 | 查看全部
这个现象通常是 BI 数据账户配置的数据库名和实际建表所在数据库不一致导致的。

MySQL 场景下,BI 获取表注释时不是直接解析建表 SQL,而是通过当前数据账户去查询元信息表,逻辑类似:

```sql
SELECT table_comment
FROM information_schema.tables
WHERE table_schema = '<BI数据账户配置的database>'
  AND table_name = 'example_report';
```

因此,即使建表 SQL 中确实存在:

```sql
comment '表说明'
```

只要 BI 数据账户中配置的 `database`、JDBC URL 中指定的库,或表实际所在库不一致,就可能查不到对应记录,最终提示“数据库表注释为空”。

可以用 BI 相同数据库账号执行下面 SQL 验证:

```sql
SELECT table_schema, table_name, table_comment
FROM information_schema.tables
WHERE table_name = 'example_report';
```

如果这里能查到表注释,再对比 BI 数据账户里配置的 database;如果不一致,调整数据账户配置或 JDBC URL,使其指向表实际所在数据库后再重新获取即可。

另外需要区分两个能力:

- 字段后的 `comment 'xxx'` 是字段注释,对应“字段注释同步为数据库字段注释”
- 表定义最后的 `comment 'xxx'` 是表注释,对应“使用数据库表的注释”,用于同步为数据集名称

回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

微信服务号
联系我们
电话:400-880-0750
邮箱:hello@guandata.com
Copyright © 2001-2026 观远社区 版权所有 All Rights Reserved. 浙 ICP 备15006424号-3
去回复 去发帖 返回顶部
快速回复 返回顶部 返回列表