SQL 格式化
DBX 会根据当前连接选择接近的 SQL 方言,并把格式化结果写回查询编辑器。选中一段 SQL 时只格式化选区;没有选区时格式化整个编辑器。
你可以使用编辑器工具栏的 格式化 SQL 按钮,或使用快捷键中配置的格式化命令。
SQL 格式化只重排文本,不会执行 SQL。无法解析的语法会返回错误并保留原内容;单次格式化最多处理 1,000,000 个字符。
方言选择
DBX 当前对以下方言使用专用格式化语法:
| 连接类型 | 格式化方言 |
|---|---|
| MySQL | MySQL |
| PostgreSQL、openGauss、GaussDB、KingbaseES、Redshift 等兼容连接 | PostgreSQL |
| SQLite、Turso、rqlite、Cloudflare D1 | SQLite |
| SQL Server | Transact-SQL |
| ClickHouse | ClickHouse |
| 其他 SQL 数据库 | 通用 SQL;必要时再尝试 PostgreSQL 语法 |
MongoDB 查询编辑器使用单独的 Mongo Shell 格式化器,不使用本页的 SQL 方言映射。
配置格式化选项
前往 设置 → SQL 格式化。表单模式提供以下选项:
| 选项 | 可用值或作用 |
|---|---|
| 关键字、数据类型、函数、标识符大小写 | upper、lower、preserve |
| 缩进样式 | standard、tabularLeft、tabularRight |
| 缩进字符 | 空格或 Tab |
| Tab 宽度 | 2 或 4 |
| 逻辑操作符换行 | 操作符之前或之后 |
| 表达式宽度 | 50、80 或 120 |
| 查询间空行 | 0、1 或 2 |
| 紧凑操作符 | 减少操作符周围的空格 |
| 分号前换行 | 把语句结尾分号放到新行 |
| 参数类型 | 识别位置参数、编号参数、命名参数、引号参数或自定义正则参数 |
恢复默认值会恢复当前代码定义的默认格式化设置。设置窗口中的改动需要点击 应用 才会持久化。
JSON 模式与导入导出
JSON 模式适合精确编辑、复制或迁移格式化器配置。当前配置文件只包含 version、formatter 和 options:
{
"version": 1,
"formatter": "sql-formatter",
"options": {
"keywordCase": "upper",
"dataTypeCase": "preserve",
"functionCase": "preserve",
"identifierCase": "preserve",
"indentStyle": "standard",
"useTabs": false,
"tabWidth": 2,
"logicalOperatorNewline": "before",
"expressionWidth": 50,
"linesBetweenQueries": 1,
"denseOperators": false,
"newlineBeforeSemicolon": false,
"paramTypes": null
}
}JSON 编辑器会实时校验配置。以下情况会阻止应用或导入:
- JSON 语法错误;
version不是1;formatter不是sql-formatter;options中包含未知字段;- 字段值不在当前代码允许的范围内。
点击 导出配置 会下载 dbx-sql-formatter.json。导入只替换 SQL 格式化选项,不会修改连接、编辑器快捷键或其他 DBX 设置。完整设置迁移请参阅配置云同步。
参数识别
paramTypes 为 null 时使用格式化器默认识别规则。需要额外语法时,可以配置:
{
"positional": true,
"numbered": ["?", "$"],
"named": [":", "@", "$"],
"quoted": [":", "@", "$"],
"custom": [
{ "regex": "@\\{[^}]+\\}" }
]
}numbered只接受?、:、$;named和quoted只接受:、@、$;custom中每项只能包含非空且合法的regex。
DBX 始终额外识别 ${name} 和 #{name} 形式的变量,避免这类模板变量导致格式化解析失败。旧配置中的非空 params 字段不再用于文本替换,应改用 paramTypes。