我在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设置可以让我做那样的事情?
7 回答
我只需要花更多时间盯着文档 . 这个命令:
会做我想要的 . 这是一些示例输出:
(新增)扩展自动模式:\ x auto
Postgresql 9.2的新功能; PSQL自动将记录拟合到屏幕宽度 . 以前您只能打开或关闭扩展模式,必须根据需要在模式之间切换 .
如果记录可以适合屏幕的宽度; psql使用普通格式 .
如果记录可以 not 适合屏幕的宽度; psql使用扩展模式 .
要使用此功能: \x auto
Postgresql 9.5 Documentation on PSQL command.
宽屏,普通格式:
窄屏,扩展格式:
如何使用\ x auto启动psql?
在启动时配置
\x auto
命令,将其添加到主文件夹中的.psqlrc
并重新启动psql . Look under 'Files' section in the psql doc for more info .~/.psqlrc
你有这么多的选择,你怎么会感到困惑:-)?主要控制措施是:
每个人都有选择和与他人的互动 . 最自动的选择是:
较新的“\ x auto”选项仅在“需要时”切换到逐行显示 .
较旧的“\ pset format wrapped”类似于它试图在屏幕上整齐地拟合数据,但如果 Headers 不适合则回退到未对齐 . 这是一个包装的例子:
另外一定要检查\ H,它打开/关闭HTML输出 . 在控制台上读取并不一定容易,但有趣的是转储到文件中(参见\ o)或粘贴到编辑器/浏览器窗口中进行查看,特别是对于多行相对复杂的数据 .
一个有趣的事情是我们可以水平查看表格,而无需折叠 . 我们可以使用
PAGER
环境变量 . psql使用它 . 你可以设置或者只是
less -S
如果它已经在命令行中可用,如果没有正确的位置 . -S查看展开的线条 . 您可以传入任何自定义查看器或其他选项 .我在Psql Horizontal Display写了更多
pspg是一个简单的工具,提供高级表格格式,水平滚动,搜索和更多功能 .
然后确保更新
PAGER
变量,例如在你的~/.bashrc
其中
-s
代表配色方案(1-14
) . 如果您正在使用pgdg repositories只需安装一个软件包(在类似Debian的发行版上):您可以使用 zenity 将查询输出显示为html表 .
cat > '/tmp/sql.op'; zenity --text-info --html --filename='/tmp/sql.op';
保存它像 mypager.sh
例如: - export PAGER='/path/mypager.sh'
然后登录到psql程序然后执行命令 \H
最后执行任何查询,tabled输出将以html表格式显示在zenity中 .