sqlbeautifier在sublime中默认将标识符转小写,需手动设置"identifier_case": "preserve"以避免mysql大小写敏感报错;安装须通过package control搜索精确名称sqlbeautifier,且文件语法必须设为sql、快捷键为ctrl+k ctrl+f。

SqlBeautifier 是目前 Sublime 中最轻量、开箱即用的 SQL 格式化方案,但装完不等于能用——默认配置会让 users 变成 users(小写),而线上 MySQL 服务若启用了 lower_case_table_names=0,直接执行会报错 Table 'test.users' doesn't exist。
怎么装 SqlBeautifier 插件(Package Control 方式)
这是最稳妥的安装路径,避免手动复制包引发的路径/权限问题:
- 按
Ctrl+Shift+P(Windows/Linux)或Cmd+Shift+P(macOS)打开命令面板 - 输入
Package Control: Install Package,回车 - 等待列表加载完成,输入
SqlBeautifier(注意大小写,不是SQLBeautify或sqlbeautifier) - 选中后回车安装 —— 安装成功后无需重启,但首次使用前建议重启一次,确保命令注册完整
为什么格式化后表名全变小写了?
SqlBeautifier 默认启用 "identifier_case": "lower",把所有字段、表名转小写。这不是 bug,是设计选择,但和多数生产环境冲突。
- 打开
Preferences → Package Settings → SqlBeautifier → Settings – User - 添加或修改这一行:
"identifier_case": "preserve" - 保存后,
SELECT u.id FROM UserTable u中的UserTable和u就不会被改写 - 别碰
"keyword_case"设为"upper"—— 这个安全,SELECT、WHERE大写不影响执行
快捷键没反应?检查这三件事
常见静默失败原因不是插件坏了,而是绑定或上下文不对:
- 当前文件语法必须设为
SQL:右下角点击语法名 → 选SQL(不是MySQL、PL/SQL;若没有该选项,先装SQL语法包) - 默认快捷键是
Ctrl+K, Ctrl+F(连按两下),不是单组合键;也可自定义:在Preferences → Key Bindings中加一行:{"keys": ["ctrl+alt+f"], "command": "sql_beautifier"} - 选中文本再触发 —— 如果全文没选中,
SqlBeautifier不会自动格式化整个文件(这点和SQLTools不同)
复杂 SQL 格式化出错怎么办?
遇到 CTE 嵌套过深、OVER (PARTITION BY ...) 错位、或 /* */ 注释吞掉关键字,说明 python-sqlparse 解析器已到边界。
- 临时关闭重缩进:
"reindent": false,保留原始换行,只做关键字大写和空格对齐 - 换用
SQLTools + sqlparse组合:它支持sqlparse_options更细粒度控制,比如指定"comma_first": true - 真正棘手的语句(含动态 SQL 拼接、存储过程逻辑),别强求自动格式化 —— 先用
Ctrl+Shift+P → SQLTools: Reindent SQL试一次,不行就手工调几处关键缩进
SqlBeautifier 的核心价值是“快”和“本地”,但它对标识符大小写的默认处理是个陷阱;identifier_case 设成 preserve 才算真正可用。复杂查询别指望一键完美,格式化只是辅助,不是替代人工审阅。











