ER图中表注释不显示,需在模型属性窗格勾选“显示表注释”,且仅对当前.nm模型生效;必须从模型窗口导出图片/PDF,数据库节点下的ER图标签页为只读快照,不支持该设置。
ER图里表注释不显示,先确认「显示表注释」开关开了没
navicat 的 er 图默认压根不渲染表级 comment,不是数据库没写,也不是你漏填——它就是关着的。这个开关不在右键菜单、也不在“设计表”界面,而在模型(.nm 文件)的属性窗格里。
操作路径:打开模型 → 右键图表空白处 → “属性”(或按 F4)→ 找到「显示表注释」并勾选。注意:显示表注释 和 显示字段注释 是两个独立开关,必须都勾上才全显示。
- 该设置只对当前模型生效,换一个 .nm 文件就得重设
- 如果从数据库节点直接点“ER 图”标签页(非模型窗口),这个开关根本不起作用——那只是只读快照
- 导出图片或 PDF 时注释消失?一定是从“数据库连接 → ER 图”导出的,必须改用模型窗口右键 → “导出为图像”
表注释写了但还是不显示,检查数据库层是否真存进去了
Navicat 只读 information_schema.TABLES.TABLE_COMMENT,它不会猜、不会缓存、也不会 fallback 到其他字段。常见失效源头:
-
MySQL表用的是ENGINE=MyISAM:老 MyISAM 不支持表级 COMMENT,必须是InnoDB -
PostgreSQL没执行过COMMENT ON TABLE t IS 'xxx';:Navicat 的图形界面不提供表注释输入框,必须手写 SQL 补 -
SQLite或SQL Server:本身不支持标准COMMENT ON TABLE语法,Navicat 就无元数据可读 - 注释含非法字符或超长:MySQL 表注释上限 64 字符(
information_schema.TABLES.TABLE_COMMENT字段长度),超出部分被截断丢弃
中文表注释显示为问号或方块,问题大概率出在连接字符集
ER 图里的中文注释是直接从元数据字节流解码出来的。如果连接建立时没声明字符集,Navicat 就会用默认的 latin1 去解 utf8mb4 存的字节,结果就是乱码。
- 右键连接 → 编辑连接 → 高级 → 勾选「使用 MySQL 字符集」→ 设为
utf8mb4 - 同一页面的「初始化命令」框里,必须填
SET NAMES utf8mb4; - 改完必须断开重连,否则设置不生效;刷新 ER 图也不触发重载
- 如果注释当初就是用错误编码写入的(比如建库时用
gbk连接写的),现在光改连接没用,得用ALTER TABLE t COMMENT = '新注释';重写
导出 PDF/PNG 后表注释看不见,别怪设置没开,先看字体和布局
即使开关开了、元数据对了、字符集也设好了,导出后注释仍为空白或错位,八成是渲染引擎卡在字体或布局上。
- Windows 用户确认系统装了
SimSun或Microsoft YaHei;macOS 用户把NotoSansCJK.ttc加入字体册并启用 - 导出前右键画布 → Options → 勾选
Use system font for labels - 导出前务必点 Layout → Organize Diagram,否则手动拖过的表位置会导致注释被挤出可视区
- PNG 导出质量严重依赖缩放比例:设为
200%再导,比100%更可能保住文字
真正容易被忽略的是:表注释在 Navicat 17 的逻辑视图下渲染不稳定,切到物理视图再试一次,往往就出来了。


















