navicat er图中表注释需通过“对象信息→选项页→comment”写入数据库元数据,而非表设计界面备注;er图默认不显示,须在模型属性中手动启用“显示表注释”,且导出须从模型窗口操作。

Navicat ER图里“表注释”不等于“字段备注”
你在表设计界面里填的「备注」列内容,Navicat 15/16 都不会自动同步到 ER 图中显示的表注释位置。那个输入框只是本地缓存标签,不触发 ALTER TABLE ... COMMENT,也不被 ER 图引擎读取。真正起作用的只有数据库元数据里的 TABLE_COMMENT(MySQL)或 COMMENT ON TABLE(PostgreSQL)。
必须走「对象信息」窗口写入真实注释
直接双击表名进「表设计」是无效的。正确路径是右键该表 → 「对象信息」→ 切换到「选项」页 → 在「Comment」输入框填写业务描述 → 点「保存」。此时 Navicat 才会执行对应 DDL:
- MySQL:生成并运行
ALTER TABLE `orders` COMMENT = '用户下单主表,含状态机与支付标识'; - PostgreSQL:执行
COMMENT ON TABLE orders IS '用户下单主表,含状态机与支付标识'; - SQL Server:写入
sys.extended_properties,类型为MSSQLTableComment
注意:如果连接配置里勾了「禁用元数据缓存」或用了旧版 MySQL 协议,information_schema 查询可能被跳过,导致 ER 图读不到刚写的注释——务必在连接「高级」设置中关闭 Disable metadata cache 并重启连接。
ER图中显示表注释需手动开启开关
即使数据库里注释已写入,Navicat 的 ER 图默认仍不渲染它。关键操作不在建表环节,而在模型视图的属性面板:
- 必须通过「模型」功能打开(即新建模型或从数据库导入生成 .nm 文件),不能直接点数据库节点下的「ER 图」标签页
- 导入完成后,右侧属性窗格自动弹出;若未弹出,按
F4或右键画布空白处 → 「属性」 - 勾选「显示表注释」和「显示字段注释」两个选项(仅对当前模型生效)
- 导出图片或 PDF 时,必须从模型窗口右键 → 「导出为图像」,而非从数据库连接下的 ER 标签页导出
顺带一提:中文注释乱码大概率是因为连接「高级」设置里没勾「使用 MySQL 字符集」且没填初始化命令 SET NAMES utf8mb4;,这个细节很容易被忽略,但会导致整个注释字段显示为方块或问号。
批量加注释别手点,用 SQL 更稳也更可控
上百张表逐个开「对象信息」效率低、易漏、难复核。推荐在 Navicat 查询窗口执行标准 SQL:
- MySQL 批量更新:
ALTER TABLE `user` COMMENT = 'C端用户主表'; ALTER TABLE `order` COMMENT = '订单聚合根,含履约与风控标记';
- 导出前先查一遍是否生效:
SELECT TABLE_NAME, TABLE_COMMENT FROM information_schema.TABLES WHERE TABLE_SCHEMA = 'your_db' AND TABLE_COMMENT != ''; - 执行前点右上角「导出结果为 SQL」按钮,把当前结构快照存一份,防误操作
最后提醒一句:Navicat 不会自动识别表名前缀(如 auth_user)、schema 名或注释语义来归类模块,所有「业务分组」都得靠手动建 Group 并拖表进去——这是唯一能影响 ER 图组织逻辑的物理容器,别指望它智能聚类。











