psql的可选输出格式,每行显示一列,并带有列名

我在Ubuntu上使用PostgreSQL 8.4。我有一个包含c1cN列的表。列足够宽,选择所有列会导致一行查询结果换行多次。因此,输出很难阅读。

当查询结果仅由几行组成时,如果我可以查看查询结果,以便每行的每一列都在单独的行上,例如。

 c1: <value of row 1's c1>
c2: <value of row 1's c1>
...
cN: <value of row 1's cN>
---- some kind of delimiter ----
c1: <value of row 2's c1>
etc.

我在一个服务器上运行这些查询,我不希望安装任何额外的软件。有没有一个psql设置可以让我这样做?

301818 次浏览

我只是需要多花点时间看文件。这个命令:

\x on

就会按我想的做以下是一些输出示例:

select * from dda where u_id=24 and dda_is_deleted='f';
-[ RECORD 1 ]------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
dda_id             | 1121
u_id               | 24
ab_id              | 10304
dda_type           | CHECKING
dda_status         | PENDING_VERIFICATION
dda_is_deleted     | f
dda_verify_op_id   | 44938
version            | 2
created            | 2012-03-06 21:37:50.585845
modified           | 2012-03-06 21:37:50.593425
c_id               |
dda_nickname       |
dda_account_name   |
cu_id              | 1
abd_id             |

另外,一定要检查\H,它可以打开/关闭HTML输出。在控制台上阅读不一定容易,但是转储到文件中(参见\o)或粘贴到编辑器/浏览器窗口中以查看很有趣,特别是对于相对复杂的多行数据。

你有这么多选择,你怎么可能会困惑:-)?主要控制有:

# \pset format
# \H
# \x
# \pset pager off

每个人都有选择和相互作用。最自动的选项是:

# \x off;\pset format wrapped
# \x auto

更新的“\x auto”选项仅在“需要时”切换到逐行显示。

-[ RECORD 1 ]---------------
id          | 6
description | This is a gallery of oilve oil brands.
authority   | I love olive oil, and wanted to create a place for
reviews and comments on various types.
-[ RECORD 2 ]---------------
id          | 19
description | XXX Test A
authority   | Testing
旧的“\pset格式包装”是类似的,它试图在屏幕上整齐地适合数据,但如果头部不适合,就会回到未对齐的状态。下面是一个wrapped的例子:

 id |          description           |            authority
----+--------------------------------+---------------------------------
6 | This is a gallery of oilve     | I love olive oil, and wanted to
; oil brands.                    ;  create a place for reviews and
;                                ;  comments on various types.
19 | Test Test A                    | Testing

有趣的是,我们可以水平地查看表格,不需要折叠。我们可以使用PAGER环境变量。PSQL利用了它。你可以设置

export PAGER='/usr/bin/less -S'

或者只是less -S,如果它已经在命令行中可用,如果没有适当的位置。查看展开的行。您可以传入任何自定义查看器或其他选项。

我在Psql水平显示中写了更多

你可以使用zenity将查询输出显示为html表格。

  • 首先实现bash脚本与以下代码:

    cat > '/tmp/sql.op'; zenity——text-info——html文件名=“/ tmp / sql.op”;< /强> < / p >

    保存为mypager.sh < /强> < / p >

  • 设置脚本全路径为value,导出环境变量PAGER。

    例如:—出口寻呼机= ' /道路/ mypager.sh '

  • 登录到psql程序,执行命令\H

  • 最后执行任意查询,输出的表格将以html表格格式显示。

pspg是一个简单的工具,提供高级表格格式,水平滚动,搜索和更多的功能。

git clone https://github.com/okbob/pspg.git
cd pspg
./configure
make
make install

然后确保更新PAGER变量,例如在你的~/.bashrc

export PAGER="pspg -s 6"

其中-s代表配色方案(1-14)。如果你正在使用pgdg存储库,只需安装一个包(在类似debian的发行版上):

sudo apt install pspg

pspg example

如果你和我一样在寻找psql command-line mode

在这里是语法--pset expanded=auto

psql命令行选项:
-P expanded=auto
——pset expanded=auto
. - x < br > ——扩大< br > …< / p >

另一种方法是-q选项裁判