Navicat 17 的「数据库字典」功能入口在「工具 → 数据库字典」,需手动勾选「包含列注释」「包含索引」「包含外键」等选项才能导出完整元数据;HTML 导出后白屏是因浏览器禁用本地 JS,应启用 HTTP 服务或改用 Firefox;中文乱码源于连接字符集(utf8mb4)与导出编码(UTF-8)未同步;字段类型显示为 varchar(255) 是因 Navicat 简化映射所致,hover 单元格可查看真实类型。
Navicat 17 的「数据库字典」功能在哪找
不是右键菜单,也不是表结构页底部按钮——入口藏在 工具 → 数据库字典。选中目标连接后,弹窗里默认只勾选“包含表结构”,但字段注释、索引、外键这些关键信息全得手动勾上。漏掉 包含列注释,导出的 html 或 pdf 里 column_comment 就是空的,不是没写,是根本没读。
导出 HTML 后页面空白或无法搜索
这不是文件损坏,是浏览器禁用了本地 JS。Chrome 和 Edge 默认阻止 file:// 协议执行脚本,导致 Navicat 写的折叠/跳转逻辑不生效,看着像白屏。
- 别双击打开,改用终端起个简易服务:
python3 -m http.server 8000,然后访问http://localhost:8000/xxx.html - 或者换 Firefox 打开(新版也收紧了,但兼容性仍比 Chrome 好)
- 如果必须用 Chrome,地址栏输入
chrome://flags/#unsafely-treat-insecure-origin-as-secure,启用该 flag 并重启(仅临时调试用)
中文注释显示为方块或问号
问题不在字体,而在两处编码没对齐:一是 Navicat 连接时没设对字符集,二是导出对话框里没手动选编码。
- 连接属性 →
高级→ 勾选使用 MySQL 字符集,下拉框选utf8mb4 - 导出时,在最后一步弹窗里找到
编码下拉框,必须选UTF-8(不是UTF-8 with BOM) - 若仍乱码,执行
SHOW FULL COLUMNS FROM your_table确认Comment列真有内容;空值或COMMENT ''也会导致导出为空
字段类型全显示为 varchar(255)
这是 Navicat 17 对 information_schema.columns.data_type 做了简化映射的结果,不是数据库存错了。它把 tinyint、datetime 都归到通用类型,再靠 numeric_precision 推断——而这个字段对非数值类型是 NULL,最终 fallback 成 varchar(255)。
- 右键模型 →
编辑数据库→ 勾选使用原始类型名称(MySQL/PostgreSQL 有效) - 导出为 HTML 后,hover 字段类型单元格,真实类型会显示在
title属性里 - PostgreSQL 用户注意:
pg_catalog.format_type()比information_schema更准,但 Navicat 不默认用它
information_schema.tables 和 information_schema.columns,其他对象得单独查 routines、views 补充。字段顺序、注释是否为空、类型映射失真,这些都不是导出失败,而是元数据本身在源头就模糊或缺失。











