↑↓ 选择 ↵ 打开 ⌫ 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

百科 / psql 命令 / 输出与格式

\pset

这个命令设置影响查询结果表输出的选项。 option 指定要设置哪个选项。 value 的含义取决于所选的选项。对于某些选项,省略 value 会切换或取消设置该选项,具体见各选项的说明。如果没有提及这类行为,那么省略 value 只会显示当前设置。

当前查看 PostgreSQL 18.6。

说明

这个命令设置影响查询结果表输出的选项。 option 指定要设置哪个选项。 value 的含义取决于所选的选项。对于某些选项,省略 value 会切换或取消设置该选项,具体见各选项的说明。如果没有提及这类行为,那么省略 value 只会显示当前设置。

客户端
psql 18.6
区分大小写的写法
\pset

用法

\pset [ option [ value ] ]

本版手册中的写法

命令手册中的后缀修饰符
\pset此语法签名未列出

手册定义

\pset [ option [ value ] ]

这个命令设置影响查询结果表输出的选项。option指定要设置哪个选项。value的含义取决于所选的选项。对于某些选项,省略value会切换或取消设置该选项,具体见各选项的说明。如果没有提及这类行为,那么省略value只会显示当前设置。

不带任何参数的\pset会显示所有打印选项的当前状态。

可调整打印选项有:

border

value必须是数字。一般来说,数字越大,表格的边框和分隔线就越多,但细节取决于具体格式。在HTML格式中,它会直接转换为border=...属性。在大多数其他格式中,只有值 0(无边框)、1(内部分隔线)和 2(表格外框)有意义,大于 2 的值会与border = 2作相同处理。latex和latex-longtable格式还允许使用值 3,以在数据行之间添加分隔线。

列

设置wrapped格式的目标宽度,同时也是确定输出是否足够宽以需要分页器或在扩展自动模式下切换到垂直显示的宽度限制。零(默认值)会导致目标宽度由环境变量COLUMNS控制,或者如果未设置 COLUMNS则由检测到的屏幕宽度控制。另外,如果columns为零,则wrapped格式仅影响屏幕输出。如果columns为非零,则文件和管道输出也会按该宽度折行。

csv_fieldsep

指定在CSV输出格式中使用的字段分隔符。如果分隔符字符出现在字段的值中,则该字段将根据标准CSV规则在双引号内输出。默认值是逗号。

expanded(或x)

如果指定了value,它必须是on或off(分别启用或禁用扩展模式),或者是auto。如果省略value,该命令会在开启和关闭设置之间切换。启用扩展模式时,查询结果以两列显示,左侧为列名,右侧为数据。如果数据在通常的“横向”模式下无法适应屏幕,这种模式就很有用。在自动设置下,当查询输出包含多列且宽度超过屏幕时,会使用扩展模式;否则使用常规模式。自动设置只在对齐和折行格式中有效。在其他格式中,它的行为始终与关闭扩展模式相同。

fieldsep

指定非对齐输出格式使用的字段分隔符。这样可以创建例如制表符分隔的输出,这可能更符合其他程序的需要。要将制表符设置为字段分隔符,请输入\pset fieldsep '\t'。默认字段分隔符是'|'(竖线)。

fieldsep_zero

将非对齐输出格式使用的字段分隔符设置为零字节。

footer

如果指定了value,它必须是on或off,分别启用或禁用表格页脚((n rows)计数)的显示。如果省略value,该命令会切换页脚显示的开关状态。

format

设置输出格式为aligned、asciidoc、csv、html、latex、latex-longtable、troff-ms、unaligned或wrapped。允许使用唯一缩写。

aligned格式是标准的、适合人阅读且排版整齐的文本输出;这是默认格式。

unaligned格式将一行中的所有列写在一行上,由当前活动的字段分隔符分隔。这对于创建可能被其他程序读取的输出很有用,例如,制表符分隔或逗号分隔格式。然而,如果字段分隔符字符出现在列的值中,则不会被特殊处理;因此,CSV格式可能更适合这些目的。

csv格式按逗号分隔的列值输出,并应用 RFC 4180 中描述的加引号规则。此输出与服务器的CSV格式的 COPY命令兼容。生成包含列名的表头行,除非 tuples_only参数设置为 on。不打印表格标题和页脚。每行以系统相关的行结束字符结束,对于类Unix系统通常是单个换行符(\n),对于Microsoft Windows则是回车和换行序列(\r\n)。可以用\pset csv_fieldsep选择逗号以外的字段分隔字符。

wrapped格式与aligned相似,但会将较宽的数据值折成多行,使输出适应目标列宽。目标宽度的确定方式见columns选项的说明。请注意,psql不会尝试对列标题折行;因此,如果列标题所需的总宽度超过目标宽度,wrapped格式的行为就与aligned相同。

asciidoc、html、latex、latex-longtable 和 troff-ms 格式输出的是可嵌入相应标记语言文档的表格,并非完整文档。HTML 可能不要求完整封装,但 LaTeX 必须有完整文档结构。latex 使用 LaTeX 的 tabular 环境;latex-longtable 需要 LaTeX 的 longtable 和 booktabs 宏包。

linestyle

设置边框线绘制样式为ascii、old-ascii或unicode之一。允许使用唯一缩写。(这意味着一个字母就足够了。)默认设置为ascii。此选项仅影响aligned和wrapped输出格式。

ascii样式使用普通的ASCII字符。数据中的换行符以右边缘的+符号表示。当wrapped格式在没有换行符的位置把数据折到下一行时,会在第一行的右边缘显示一个点(.),并在下一行的左边缘再次显示。

old-ascii样式使用普通的ASCII字符,采用PostgreSQL 8.4 及更早版本的格式样式。数据中的换行符以替代左侧列分隔符的:符号表示。当数据在没有换行符的位置折到下一行时,则用;符号替代左侧列分隔符。

unicode样式使用 Unicode 框线绘制字符。数据中的换行符以右边缘的回车符号表示。当数据在没有换行符的位置折到下一行时,会在第一行的右边缘显示省略号符号,并在下一行的左边缘再次显示。

当border设置大于零时,linestyle选项还决定用哪些字符绘制边框线。普通的ASCII字符在任何环境中都可用,但在支持 Unicode 的显示设备上,Unicode 字符更美观。

null

设置用于代替空值打印的字符串。默认不打印任何内容,这很容易被误认为空字符串。例如,你可能更喜欢使用\pset null '(null)'。

numericlocale

如果指定了value,它必须是on或off,分别启用或禁用使用区域设置特定的字符来分隔小数点左侧的数字组。如果省略value,该命令会在常规数字输出和区域设置特定的数字输出之间切换。

pager

控制查询结果与 psql 帮助输出使用分页程序的方式。当 pager 为 off 时,不使用分页程序;为 on 时,在适当情况下使用,即输出目标是终端且内容无法在屏幕内显示完。设为 always 时,所有终端输出均使用分页程序,无论是否能在屏幕内显示完。不带值的 \pset pager 会切换分页的开关状态。

如果设置了环境变量PSQL_PAGER或PAGER,需要分页的输出会通过管道传给指定程序。否则,使用与平台有关的默认程序(如more)。

当使用 \watch 命令重复执行查询时,在 Unix 系统上会改用环境变量 PSQL_WATCH_PAGER 来查找分页器程序。之所以单独配置它,是因为这种用法可能会让传统分页器无法正常工作;但它可用于把输出发送给能够理解 psql 输出格式的工具(例如 pspg --stream)。

pager_min_lines

若 pager_min_lines 大于屏幕页高,只有输出行数达到该值时才调用分页程序。默认值为 0。

recordsep

指定非对齐输出格式使用的记录(行)分隔符。默认为换行符。

recordsep_zero

将非对齐输出格式使用的记录分隔符设置为零字节。

tableattr(或T)

在HTML格式中,这指定要放在table标签内的属性,例如cellpadding或bgcolor。请注意,你可能不需要在这里指定border,因为\pset border已经负责处理它。如果没有给出value,则取消设置表格属性。

在latex-longtable格式中,这控制每个包含左对齐数据类型的列的宽度比例。它以空白分隔的值列表指定,例如'0.2 0.2 0.6'。未指定的输出列使用最后指定的值。

title(或C)

设置随后打印的所有表格的标题。这可以为输出提供描述性标签。如果没有给出value,则取消设置标题。

tuples_only(或t)

如果指定了value,它必须是on或off,分别启用或禁用仅元组模式。如果省略value,该命令会在常规输出和仅元组输出之间切换。常规输出包含列标题、表格标题和各种页脚等附加信息。在仅元组模式下,只显示实际的表格数据。

unicode_border_linestyle

将unicode线条样式的边框绘制样式设置为single或double。

unicode_column_linestyle

将unicode线条样式的列分隔线绘制样式设置为single或double。

unicode_header_linestyle

将unicode线条样式的表头分隔线绘制样式设置为single或double。

xheader_width

将扩展输出标题的最大宽度设为 full(默认值)、column、page 或一个整数值。

full:扩展表头不截断,其宽度与最宽的输出行相同。

column:将表头行截断为第一列的宽度。

page:将表头行截断为终端宽度。

整数值:精确指定标题行的最大宽度。

这些不同格式的外观示例可参见下面的示例。

提示

有各种快捷命令用于\pset。请参见\a、\C、\f、\H、\t、\T和\x。

相关条目

文档与源码

来源构建
版本
18.6
构建
https://ftp.postgresql.org/pub/source/v18.6/postgresql-18.6.tar.bz2
来源指纹
ee8d1a3612338fd9adf250730cb640fcc5233b5491337cc00a316a44e3a0b9f8

版本比较

PostgreSQL 17 → 18: 无变化。

比较已记录的接口与属性,排除来源指纹和构建元数据。某个样本中没有记录,不能据此判断实际引入或移除的版本。

相关条目

导出 JSON · 返回psql 命令 · 收录范围为 PostgreSQL 10 至 20;最早采样版本不一定是实际引入版本。