Navicat 通过导出/导入 navicat_sql_format.xml 实现团队 SQL 格式统一,该文件含关键字大小写、缩进、换行等全部规则,需统一版本、手动导入并重启编辑器生效,且须配合 sqlcheck 等工具保障语义规范。

Navicat 本身不生成“编码规范模板”,它只导出当前生效的格式化规则配置——真正能被团队复用、可版本管理、跨平台一致的,是那个 navicat_sql_format.xml 文件。
导出 XML 配置是唯一可靠方式
Navicat 没有“导出规范”按钮,也没有云端同步或账号绑定配置。所谓“统一规范”,本质是把本地调好的美化参数打包成标准 XML 文件,由团队成员手动导入。这个文件包含所有关键字大小写、缩进、换行、括号位置等细节,且 Mac 和 Windows 导入逻辑完全一致。
- 路径:「美化 SQL 选项…」对话框右下角点击「导出」→ 保存为
navicat_sql_format.xml - 该文件是纯文本,可直接提交到 Git,例如放在
.navicat/format/navicat_sql_format.xml - Navicat 16 与 17 的 XML 结构有微小差异,建议团队统一主版本(如全用 17.1.12),避免导入后部分参数失效
必须对齐的三个关键参数
即使导入了同一份 XML,如果以下三项理解不一致,格式效果就会分裂,Git diff 里全是无意义变更:
-
Uppercase keywords:勾选则SELECT/FROM全大写;不勾选则保留原始大小写。团队若约定关键字大写,此项必须统一勾选 -
Indent size和Use spaces instead of tabs:影响嵌套子查询和 WHERE 条件的对齐方式。混合使用 tab 和空格会导致不同编辑器显示错位 -
Break lines before AND/OR:决定多条件 WHERE 是写成一行还是每条件换行。不统一会导致同一段 SQL 在不同人机器上格式迥异
导入后要重启编辑器才生效
很多人导入 XML 后立刻测试,发现没变化——因为 Navicat 不热加载格式化配置。必须关闭并重新打开 SQL 编辑器窗口,或干脆重启整个 Navicat 进程。
- 导入路径:「美化 SQL 选项…」→「导入」→ 选择
navicat_sql_format.xml - 导入时不会提示覆盖,如果已有同名规则,新规则会被静默跳过;建议先删旧规则再导入
- 导入成功后,在「美化 SQL 选项…」列表中能看到新规则名称,但只有切换到该规则并重启编辑器,
Ctrl+Q(Windows)或Cmd+Q(macOS)才会按新规则格式化
最易被忽略的是:XML 只管格式,不管语义。它不会拦住 SELECT *、不会警告缺失索引、也不会识别隐式类型转换。团队真要落地编码规范,得把 navicat_sql_format.xml 和 sqlcheck 这类 CLI 工具配合用,前者管“怎么写好看”,后者管“能不能安全执行”。











