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设置可以让我做类似的事情吗?
#1 楼
我只需要花更多时间盯着文档。此命令:\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 |
#2 楼
(新)扩展的自动模式:\ x autoPostgresql 9.2的新功能; PSQL自动使记录适合屏幕的宽度。以前,您只能打开或关闭扩展模式,并且必须根据需要在模式之间进行切换。
如果记录可以适合屏幕的宽度; psql使用常规格式。
如果记录不能适合屏幕的宽度; psql使用扩展模式。
要使用此功能:\ x auto
Postgresql 9.5有关PSQL命令的文档。
宽屏,正常格式:
id | time | humanize_time | value
----+-------+---------------------------------+-------
1 | 09:30 | Early Morning - (9.30 am) | 570
2 | 11:30 | Late Morning - (11.30 am) | 690
3 | 13:30 | Early Afternoon - (1.30pm) | 810
4 | 15:30 | Late Afternoon - (3.30 pm) | 930
(4 rows)
-[ RECORD 1 ]-+---------------------------
id | 1
time | 09:30
humanize_time | Early Morning - (9.30 am)
value | 570
-[ RECORD 2 ]-+---------------------------
id | 2
time | 11:30
humanize_time | Late Morning - (11.30 am)
value | 690
-[ RECORD 3 ]-+---------------------------
id | 3
time | 13:30
humanize_time | Early Afternoon - (1.30pm)
value | 810
-[ RECORD 4 ]-+---------------------------
id | 4
time | 15:30
humanize_time | Late Afternoon - (3.30 pm)
value | 930
如何使用\ x auto启动psql?
在启动时配置
\x auto
命令,方法是将其添加到主文件夹中的.psqlrc
,然后重新启动psql。在psql文档的“文件”部分下查找更多信息。〜/ .psqlrc
\x auto
#3 楼
您有很多选择,您怎么会困惑:-)?主要控件是:每个控件都有选项,并且可以与其他控件交互。最自动的选项是:# \pset format
# \H
# \x
# \pset pager off
较新的“ \ x auto”选项仅在“需要”时才切换为逐行显示。
<较旧的“ \ pset格式包装”类似,它试图将数据整齐地显示在屏幕上,但是如果标题不适合,则会退回到未对齐状态。以下是包装的示例:
# \x off;\pset format wrapped
# \x auto
评论
\ x auto与\ pset pager一起关闭是一个不错的选择。
–mitnk
19-2-27在10:37
\ x关闭; \ pset格式换行和\ x auto打算一起使用还是相互排斥?
– Demitri
19年7月1日在3:38
#4 楼
一件有趣的事情是我们可以水平查看桌子,而无需折叠。我们可以使用PAGER
环境变量。 psql使用它。如果在命令行中已经可用,则可以设置export PAGER='/usr/bin/less -S'
,或者仅
less -S
(如果位置不正确)。 -S查看展开的线。您可以使用它传递任何自定义查看器或其他选项。我已经在Psql Horizontal Display中编写了更多内容
评论
答案真的很好。我很惊讶它没有标高。非常适合在码头工作的任何人。
– LUser
19年2月27日在17:18
这非常有帮助
–梅林
19 Mar 2 '19 at 11:41
这很有用,但是如何向右滚动呢?
– Niel de Wet
19年6月12日在14:21
#5 楼
pspg
是一款简单的工具,可提供高级表格格式设置,水平滚动,搜索和更多功能。然后确保更新
PAGER
变量,例如。在您的~/.bashrc
中git clone https://github.com/okbob/pspg.git
cd pspg
./configure
make
make install
其中
-s
代表配色方案(1-14
)。如果您使用的是pgdg存储库,则只需安装一个软件包(在类似Debian的发行版上):export PAGER="pspg -s 6"
#6 楼
另外,请务必检查出\ H,它会打开/关闭HTML输出。不一定很容易在控制台上阅读,但是对于转储到文件中(请参见\ o)或粘贴到编辑器/浏览器窗口中进行查看(特别是包含多行相对复杂的数据)尤其有趣。#7 楼
您可以使用zenity将查询输出显示为html表。首先用以下代码实现bash脚本:
cat>'/ tmp / sql.op';
zenity --text-info --html --filename ='/ tmp / sql.op';
将其保存为mypager.sh
然后通过将脚本的完整路径设置为值来导出环境变量PAGER。
例如:-export PAGER ='/ path / mypager.sh'
然后登录到psql程序,然后执行命令\ H
,最后执行任何查询,表格输出将以zenity格式以html表格格式显示。
#8 楼
如果您正在寻找像我这样的psqlcommand-line mode
,请使用以下语法--pset expanded=auto
在这里引用
psql命令行选项:
-P Expanded = auto
- -pset Expanded = auto
-x
--expanded
第二种方法是
-q
选项ref
评论
您也可以尝试使用\ pset格式包装(允许的格式为未对齐,对齐,包装,html,乳胶,troff-ms)。如果显示足够窄,它将自动换行。
–布莱斯
13年4月14日在23:05
单独的\ x会切换值,从而节省了三个键击! (在宽和窄输出之间快速切换时很有用)。
–麦桑福德
15年8月27日在15:18
如果要从MySQL寻找与\ G等效的文件,请尝试在查询末尾附加\ x \ g \ x或在〜/ .psqlrc中定义快捷方式,并添加\ set G'\\ set QUIET 1 \\ x \\ g \\ x \\ set QUIET 0',然后在末尾使用:G。 (注意缺少分号)
–SławomirLenart
17年7月18日在16:56
是否可以通过某种方式在命令行中传递“ \ x on”或等效值?如果我可以保存(例如,通过使用bash shell别名)psql,那将是一件很不错的事,以便我始终可以默认打开该选项。
–machineghost
'18 Apr 1'在0:16
@machineghost使用-P expand = auto或--pset Expanded = auto
–alecdwm
18-10-2在7:58