navicat er图默认不显示字段注释,需按版本开启对应设置:16/17版在模型属性中勾选“显示字段注释”和“显示表注释”,且须通过模型窗口导出;15版需手动将sql中的comment粘贴至字段description栏;务必确认数据库层已正确写入注释并检查字符集配置。
navicat er图默认不显示字段注释——不是数据库没写,也不是你漏填,而是渲染开关根本没开。不同版本处理逻辑差异极大,必须按版本对症操作。
Navicat 16/17:在模型属性中启用「显示字段注释」
这个设置只对当前 .nm 模型文件生效,且必须通过「模型窗口」导出才保留注释。
- 先确保已用「文件 → 新建模型」或「从数据库导入…」创建了模型(不能直接右键数据库→「ER 图」)
- 导入完成后,右侧自动弹出属性窗格;若未出现,按
F4或右键图表空白处 → 「属性」 - 勾选「显示字段注释」和「显示表注释」两项(缺一不可)
- 导出时务必右键图表 → 「导出为图像」或「导出为 PDF」;从数据库连接节点下的「ER 图」标签页导出会丢失所有注释
Navicat 15:手动把COMMENT粘贴进字段Description栏
它不解析 information_schema.columns.column_comment,也不支持自动绑定,纯靠人工补录。
- 导出源库建表语句,确认含
COMMENT 'xxx'(注意必须用英文单引号,不能用中文引号或双引号) - 新建空白模型 → 右键画布 → 「Import from SQL File」导入该 SQL
- 双击每张表 → 在「表属性」窗口中,将每个字段的
COMMENT内容复制粘贴到对应字段的Description栏(不是Comment栏) - 保存后刷新实体,文字才会显示在字段名右侧、类型左侧;超长内容会被硬编码宽度截断,无法自适应
字段注释不显示?先排查数据库层是否真正写入
Navicat 只读元数据,不会“猜”或“缓存”你之前输过什么。常见失效原因:
-
MySQL表引擎是MyISAM:不支持字段级COMMENT,必须改用InnoDB -
PostgreSQL连接下没执行COMMENT ON COLUMN:Navicat 图形界面不提供输入框,必须手写 SQL 补充 -
SQLite或SQL Server:本身不支持标准COMMENT语法,Navicat 无从读取 -
MySQL 8.0+用户:当前连接用户缺少information_schema.columns的SELECT权限,SHOW FULL COLUMNS返回的Comment字段为空
中文注释变问号或方块?重点检查连接字符集
乱码本质是字节流被错误解码,90% 问题出在连接初始化阶段。
- 右键连接 → 「编辑连接」→ 「高级」→ 勾选「使用 MySQL 字符集」→ 设为
utf8mb4 - 在同一页面的「初始化命令」框中,**必须手动填入**:
SET NAMES utf8mb4; - 断开并重连该连接,再刷新 ER 图;否则设置不触发元数据重载
- 若已有注释已损坏(如当初用
gbk写入),需用ALTER TABLE ... COMMENT = '新注释';重写,且执行前确保连接已设SET NAMES utf8mb4;
最易忽略的一点:Navicat 的「ER 图」标签页(数据库连接下直接切换的那个)只是只读快照,所有设置都不起作用。真要带注释,必须走模型流程——哪怕多点两下,也绕不开这一步。











