38

当我psql在交互模式下使用 PostgreSQL 的命令行工具时,它会将数据列为分页输出。

但是,因为我psql在可以自己处理长输出的终端应用程序中使用,所以我宁愿获得整个输出而不用烦人的--more--行进行分页。

有什么方法可以自定义分页行为psql吗?我试图LESS在周围的 shell 环境中设置为cat,但这无济于事。

有什么建议么?

4

2 回答 2

50

来自精美psql手册

\pset option [ value ]
[...]
pager
控制使用寻呼程序进行查询和 psql 帮助输出。如果设置了环境变量 PAGER,则输出将通过管道传送到指定的程序。否则,将使用与平台相关的默认值(例如more)。

当该pager选项关闭时,不使用寻呼程序。当 pager 选项打开时,在适当的时候使用 pager

所以你可以从psql提示中这样说:

psql> \pset pager off

关闭寻呼机。如果您希望它始终适用,您可以添加\pset pager off到您的~/.psqlrc文件中。

您还可以\?psql提示中使用来快速了解您可以使用的特殊命令。

于 2013-01-23T07:43:22.860 回答
2

为了完整起见,我们可能会提到一次性或用作您的脚本之一中的设置...(正如“mu”所提到的,请参阅 psql --help (手册))

作为脚本中的命令

psql --pset=pager-off -c " <sqlCommand>" <databaseName>

从你的命令行

psql --pset=pager=off <databaseName>

这仅对单个命令有效,因此在脚本中最有用。

您可以使用此方法代替在 psql 实用程序中进行临时更改或通过 init 文件 (~/.psqlrc) 进行永久设置。

于 2019-06-27T18:40:32.963 回答