DBX

SQL 格式化

DBX 会根据当前连接选择接近的 SQL 方言,并把格式化结果写回查询编辑器。选中一段 SQL 时只格式化选区;没有选区时格式化整个编辑器。

你可以使用编辑器工具栏的 格式化 SQL 按钮,或使用快捷键中配置的格式化命令。

SQL 格式化只重排文本,不会执行 SQL。无法解析的语法会返回错误并保留原内容;单次格式化最多处理 1,000,000 个字符。

方言选择

DBX 当前对以下方言使用专用格式化语法:

连接类型格式化方言
MySQLMySQL
PostgreSQL、openGauss、GaussDB、KingbaseES、Redshift 等兼容连接PostgreSQL
SQLite、Turso、rqlite、Cloudflare D1SQLite
SQL ServerTransact-SQL
ClickHouseClickHouse
其他 SQL 数据库通用 SQL;必要时再尝试 PostgreSQL 语法

MongoDB 查询编辑器使用单独的 Mongo Shell 格式化器,不使用本页的 SQL 方言映射。

配置格式化选项

前往 设置 → SQL 格式化。表单模式提供以下选项:

选项可用值或作用
关键字、数据类型、函数、标识符大小写upperlowerpreserve
缩进样式standardtabularLefttabularRight
缩进字符空格或 Tab
Tab 宽度24
逻辑操作符换行操作符之前或之后
表达式宽度5080120
查询间空行012
紧凑操作符减少操作符周围的空格
分号前换行把语句结尾分号放到新行
参数类型识别位置参数、编号参数、命名参数、引号参数或自定义正则参数

恢复默认值会恢复当前代码定义的默认格式化设置。设置窗口中的改动需要点击 应用 才会持久化。

JSON 模式与导入导出

JSON 模式适合精确编辑、复制或迁移格式化器配置。当前配置文件只包含 versionformatteroptions

{
  "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 设置。完整设置迁移请参阅配置云同步

参数识别

paramTypesnull 时使用格式化器默认识别规则。需要额外语法时,可以配置:

{
  "positional": true,
  "numbered": ["?", "$"],
  "named": [":", "@", "$"],
  "quoted": [":", "@", "$"],
  "custom": [
    { "regex": "@\\{[^}]+\\}" }
  ]
}
  • numbered 只接受 ?:$
  • namedquoted 只接受 :@$
  • custom 中每项只能包含非空且合法的 regex

DBX 始终额外识别 ${name}#{name} 形式的变量,避免这类模板变量导致格式化解析失败。旧配置中的非空 params 字段不再用于文本替换,应改用 paramTypes