PostgreSQL:如何在长输出中向上滚动
PostgreSQL: How to scroll up in long output
假设我收到一个大型查询。 Postgres 给了我 --More--
指标。按 <space>
向下移动一页。按 <enter>
向下移动一行。有没有办法向上滚动?是否可以将输出通过管道传输到 less
?
我正在通过 PuTTY 在 CentOS7 上访问 PostgreSQL 9.5。
例如:
pundb=# \x on
pundb=# select * from pg_roles;
-[ RECORD 1 ]--+-------------
rolname | dinner
rolsuper | t
rolinherit | t
rolcreaterole | t
rolcreatedb | t
rolcanlogin | t
rolreplication | t
rolconnlimit | -1
rolpassword | ********
rolvaliduntil |
rolbypassrls | t
rolconfig |
oid | 10
-[ RECORD 2 ]--+-------------
rolname | sushi
rolsuper | f
rolinherit | t
rolcreaterole | f
rolcreatedb | f
rolcanlogin | t
rolreplication | f
rolconnlimit | -1
rolpassword | ********
rolvaliduntil |
rolbypassrls | f
rolconfig |
oid | 16384
-[ RECORD 3 ]--+-------------
rolname | drum
rolsuper | f
rolinherit | t
rolcreaterole | f
rolcreatedb | f
--More--
编辑: 我知道 h
带我去帮忙。它说
b or ctrl-B Skip backwards k screenfuls of text [1]
但这不起作用。也许是因为我在 PuTTY 中?
您可能正在使用不支持向上滚动的 $PAGER
。例如。 more
.
尝试使用不同的 PAGER 变量执行 postgresql 客户端:
PAGER=less psql [...]
或:
export PAGER=less
psql [...]
如果您想永久更改,请将上面的 export
行插入您的 ~/.bash_profile
。
注意:这会影响许多使用 $PAGER
环境变量的东西,但是嘿,它只会增强体验,对吗?
lower-left 角中的 --More--
指示符表明您正在使用 psql
内部的默认寻呼机 more
, which doesn't allow backward movement. You can switch to less
使用此命令:
\setenv PAGER 'less'
顺便说一句,将寻呼机设置为 less -S
(或在 less
中键入 -S
和 Enter)将允许您横向滚动而不会包装(因此不需要扩展模式)。如果你想花哨,你可以使用 pspg
:)
假设我收到一个大型查询。 Postgres 给了我 --More--
指标。按 <space>
向下移动一页。按 <enter>
向下移动一行。有没有办法向上滚动?是否可以将输出通过管道传输到 less
?
我正在通过 PuTTY 在 CentOS7 上访问 PostgreSQL 9.5。
例如:
pundb=# \x on
pundb=# select * from pg_roles;
-[ RECORD 1 ]--+-------------
rolname | dinner
rolsuper | t
rolinherit | t
rolcreaterole | t
rolcreatedb | t
rolcanlogin | t
rolreplication | t
rolconnlimit | -1
rolpassword | ********
rolvaliduntil |
rolbypassrls | t
rolconfig |
oid | 10
-[ RECORD 2 ]--+-------------
rolname | sushi
rolsuper | f
rolinherit | t
rolcreaterole | f
rolcreatedb | f
rolcanlogin | t
rolreplication | f
rolconnlimit | -1
rolpassword | ********
rolvaliduntil |
rolbypassrls | f
rolconfig |
oid | 16384
-[ RECORD 3 ]--+-------------
rolname | drum
rolsuper | f
rolinherit | t
rolcreaterole | f
rolcreatedb | f
--More--
编辑: 我知道 h
带我去帮忙。它说
b or ctrl-B Skip backwards k screenfuls of text [1]
但这不起作用。也许是因为我在 PuTTY 中?
您可能正在使用不支持向上滚动的 $PAGER
。例如。 more
.
尝试使用不同的 PAGER 变量执行 postgresql 客户端:
PAGER=less psql [...]
或:
export PAGER=less
psql [...]
如果您想永久更改,请将上面的 export
行插入您的 ~/.bash_profile
。
注意:这会影响许多使用 $PAGER
环境变量的东西,但是嘿,它只会增强体验,对吗?
lower-left 角中的 --More--
指示符表明您正在使用 psql
内部的默认寻呼机 more
, which doesn't allow backward movement. You can switch to less
使用此命令:
\setenv PAGER 'less'
顺便说一句,将寻呼机设置为 less -S
(或在 less
中键入 -S
和 Enter)将允许您横向滚动而不会包装(因此不需要扩展模式)。如果你想花哨,你可以使用 pspg
:)