我们从 PostgreSQL 8.3 切换到 9.0。也许这是一个新功能,或者只是一个配置更改,但是现在当命令(例如,\d tablename)的输出超过可见的垂直空间时,psql 似乎通过类似于less. 我找不到关闭这种行为的方法。有什么建议吗?谢谢。
PS 我正在使用 PuTTY 滚动缓冲区,Shift+PgUp/PgDn所以我不需要 psql 的分页。另外,当我按下qpsql 的分页时,它的输出完全从屏幕上消失(就像less在 bash 中运行后一样),从一般用例的角度来看这是错误的。
Sve*_*ven 58
特尔;博士:
\pset pager 0
从psql 手册的 \pset 部分:
寻呼机
控制用于查询和 psql 帮助输出的寻呼程序的使用。如果设置了环境变量 PAGER,则输出将通过管道传输到指定的程序。否则使用依赖于平台的默认值(例如更多)。
当寻呼机选项关闭时,不使用寻呼机程序。当 pager 选项打开时,会在适当的时候使用 pager,即当输出到终端并且不适合屏幕时。pager 选项也可以设置为 always,这会导致 pager 用于所有终端输出,而不管它是否适合屏幕。没有值的 \pset pager 打开和关闭传呼机的使用。
小智 26
尝试切换器:
database_name=# \pset pager
Pager is used for long output.
database_name=# \pset pager
Pager usage is off.
Run Code Online (Sandbox Code Playgroud)
miv*_*ivk 17
psql在 shell 中使用时关闭寻呼机:
psql -P pager=off ...
Run Code Online (Sandbox Code Playgroud)
您还可以导出一个空的PAGER环境变量,因此您无需为每个语句添加该选项。它将保持设置,直到您关闭当前的 shell。
export PAGER=
psql ...
Run Code Online (Sandbox Code Playgroud)
最后,一个可能更容易记住的解决方法:通过管道输出输出cat,这将禁用默认寻呼机
psql ... | cat
Run Code Online (Sandbox Code Playgroud)