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

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

 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设置可以让我这样做?


当前回答

如果你和我一样在寻找psql命令行模式,

下面是语法:pset expanded=auto

PSQL命令行选项: - p =扩大汽车 ——pset扩大=汽车 - x ——扩大 ...

另一种方法是-q option ref

其他回答

如果你和我一样在寻找psql命令行模式,

下面是语法:pset expanded=auto

PSQL命令行选项: - p =扩大汽车 ——pset扩大=汽车 - x ——扩大 ...

另一种方法是-q option ref

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

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

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

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

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

\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             | 

参见:

男人PSQL => \x Man PSQL =>—扩展 Man PSQL => \pset =>扩展

可以使用zenity将查询输出显示为HTML表。

首先用以下代码实现bash脚本: /tmp/sql.op'; Zenity——text-info——html——filename='/tmp/sql.op'; 保存到mypager.sh 然后将脚本的全路径设置为value,导出环境变量PAGER。 例如:- export PAGER='/path/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