跳转到正文

PostgreSQL 格式化器

按照 Postgres 规则格式化 PostgreSQL 查询和脚本,支持函数体中的美元引号字符串、E'' 转义字符串、双引号标识符、:: 类型转换,以及 ->> 和 @> 等 JSON 运算符。RETURNING、ON CONFLICT 和 DO UPDATE SET 等子句会各占一行;未闭合的字符串、注释或括号会报告行号和列号。适合开发者阅读迁移脚本和查询。

重置

常见问题

能识别哪些 PostgreSQL 语法?

可识别带双写引号的标准字符串、带反斜杠转义的 E'' 字符串、U&'' Unicode 字符串、B'' 和 X'' 位字符串、双引号标识符以及 $1 参数。也能读取 $$...$$ 或 $body$...$body$ 这类美元引号字符串。

美元引号中的函数体会如何处理?

美元引号中的函数体会按原样保留,因为对于 PostgreSQL 来说,它是一个字符串。外围的 CREATE FUNCTION 语句会进行格式化,但函数体本身不会更改。

类型转换和运算符会保持完整吗?

是的。像 value::integer 这样的类型转换会保持连在一起,->、->>、#>、#>>、@>、<@、?|、?&、@@ 以及正则表达式运算符 ~、~* 和它们的否定形式都不会被拆开。在 PostgreSQL 中,# 是运算符,不是注释。

哪些 PostgreSQL 子句会单独换行?

RETURNING、ON CONFLICT、DO UPDATE SET、FOR UPDATE、FOR NO KEY UPDATE、FOR SHARE 和 FOR KEY SHARE 会作为完整子句保留在一起。常见的 SELECT、FROM、WHERE、GROUP BY、ORDER BY、LIMIT 和 OFFSET 子句也会各自另起一行。

注释会保留吗?

会。行注释和块注释会保留在原处,并且可以正确读取 PostgreSQL 支持的嵌套块注释。多行块注释会根据新位置重新缩进。

支持 MERGE 吗?

支持。WHEN MATCHED 和 WHEN NOT MATCHED 分支会另起一行,因此 PostgreSQL 15 及更高版本中的 MERGE 语句仍然清晰易读。

它会更改关键字的大小写吗?

不会。关键字和标识符会保留你输入时的大小写。PostgreSQL 中的带引号标识符区分大小写,且绝不会被修改。

会检测哪些错误?

未闭合的字符串、带引号的标识符、美元引号字符串和块注释,以及括号不匹配,都会报告行号和列号。此工具不会检查完整的 PostgreSQL 语法或你的架构。

输入内容可以有多大?

每次请求最多 1 MB,每条语句最多 128 KB。包含许多语句的迁移文件会逐条格式化,并以空行分隔。

可以选择缩进方式吗?

可以。使用 2 个或 4 个空格,也可以使用制表符。你的 SQL 只会在内存中处理,绝不会保存。

关于 OneClick Pro

OneClick Pro 是一个免费的工具集合,包含超过 150 种网络工具,助你处理日常工作:转换图像和单位、格式化和验证代码、检查域名和 SEO,以及处理文本、日期和数字。所有工具均可免注册、免订阅使用;你输入的内容仅用于计算结果,绝不会被存储。你可以将它用作处理临时任务的快捷工具箱,也可以收藏每天都会用到的工具。