Navicat 不支持自定义SQL模板,但可通过右键“复制为”、双击表看底部SQL、查询构建器切换语句类型三条路径秒级生成CRUD语句,无需插件或配置。

Navicat 本身不支持自定义SQL模板功能,但可通过「查询构建器」+「复制为」+「SQL预览」三者组合,达成接近“秒级生成CRUD”的效果——关键不是配模板,而是绕过手写、复用已有交互路径。
为什么不能直接配置SQL模板
Navicat 没有提供类似 VS Code 的 snippets 或 DBeaver 的 SQL template manager 功能。所谓“模板配置”在官方文档和实测中均不存在:Preferences → General 或 SQL Editor 设置项里没有模板入口;右键菜单、工具栏、快捷键绑定中也无“插入模板”选项。强行寻找“模板配置”会浪费大量时间。
真正有效的 CRUD 快速生成路径
以下操作全部基于 Navicat for MySQL / Premium(v16+)当前稳定行为,无需插件或外部工具:
- 对任意表右键 →
复制为→ 选INSERT statement或UPDATE statement:立刻生成带字段名、占位符(?或NULL)的语句,可直接粘贴修改 - 在「查询构建器」中拖入表 → 勾选字段 → 点击顶部
SELECT/UPDATE/DELETE切换按钮 → 左侧实时显示对应 SQL,点击复制到剪贴板即可 - 双击打开某张表 → 编辑一行数据 → 不保存 → 看窗口底部状态栏:Navicat 会实时显示将要执行的
INSERT或UPDATE语句,点它就能复制 - 修改表结构(如加字段)→ 点击右下角
SQL 预览→ 复制生成的ALTER TABLE语句,本质是 DDL 模板化输出
容易被忽略的细节和兼容性坑
这些细节直接影响你是否真能“秒级”拿到可用语句:
-
复制为生成的INSERT默认不含主键字段(如id),若该字段是AUTO_INCREMENT,没问题;但如果是 UUID 或业务主键,必须手动补上,否则执行报错Column 'id' cannot be null - 「查询构建器」生成的
UPDATE语句默认带WHERE条件(基于当前选中行的主键),若你本意是全表更新,得删掉WHERE部分——但 Navicat 不会警告,容易误操作 - 导出为 SQL 文件时,若勾选了
包含 DROP TABLE和包含 AUTO_INCREMENT,生成的脚本可用于重建环境,但不适合作为日常 CRUD 模板,因为混入了 DDL - MySQL 8.0+ 开启了
sql_mode=STRICT_TRANS_TABLES时,复制为生成的空字符串插入('')可能被拒绝,需确认字段是否允许空值
真正省时间的地方,从来不是“配一个模板”,而是熟记这三条触发路径:右键 → 复制为、双击表 → 看底部SQL、查询构建器 → 切换语句类型。其他所有“模板管理”思路,在 Navicat 里都走不通。


















