sqlbeautifier 在 sublime text 4 上不可用,因其依赖已废弃的 python 2 版 sqlparse;推荐改用 sqlformatter 插件或基于 sqlformat 的 build system,并务必配置 "identifier_case": "unchanged" 以避免 mysql 表名大小写问题。

SqlBeautifier 在 Sublime Text 4 上基本不能用
如果你用的是 Sublime Text 4(2021 年后安装的默认版本),SqlBeautifier 插件大概率根本不会响应,或者执行时抛出 ImportError: No module named sqlparse。它依赖 Python 2 的 sqlparse,而 ST4 内置 Python 3,插件仓库也已多年未更新(GitHub 最后提交是 2017 年)。右键菜单里找不到 “Beautify SQL”,命令面板搜不到该命令,都是典型失效信号。
想用本地插件就装 SqlFormatter
SqlFormatter 是目前少数仍在维护、原生支持 ST4 的替代方案,不用配 Python 环境,装完即用:
- 按
Ctrl+Shift+P(Win/Linux)或Cmd+Shift+P(macOS),输入Package Control: Install Package - 搜索
SqlFormatter并安装 - 默认快捷键是
Ctrl+Alt+F,也可右键 →Format SQL - 如需保留表名/字段名原始大小写(避免 MySQL 报错),在
Preferences → Package Settings → SqlFormatter → Settings中加一行:"identifier_case": "unchanged"
更稳的方式:用 sqlformat + Build System
不依赖插件、不碰 Python 版本兼容问题,靠系统级命令行工具驱动,适合对格式一致性要求高的团队:
- 终端运行:
pip install sqlformat(确保是 Python 3 环境) - Sublime 中新建编译系统:
Tools → Build System → New Build System - 粘贴并保存为
SQLFormat.sublime-build:
{
"cmd": ["sqlformat", "--reindent", "--keyword-case=upper", "--identifier-case=unchanged", "-"],
"selector": "source.sql",
"stdin": true,
"stdout": true
}
- 打开 SQL 文件 →
Tools → Build System → SQLFormat→ 选中代码 →Ctrl+B - 注意:
--identifier-case=unchanged是关键,否则线上 MySQL(lower_case_table_names=0)可能因表名被转小写而报错
别忽略 identifier_case 这个坑
几乎所有 SQL 格式化工具默认会改标识符大小写,但 MySQL 表名是否区分大小写取决于 lower_case_table_names 配置。开发环境设为 1(自动转小写)没问题,生产环境是 0 就必须保持原始大小写。无论是 SqlFormatter 设置还是 sqlformat 命令参数,漏掉 identifier_case 相关配置,格式化完直接上线就可能触发 Table 'xxx' doesn't exist。











