有谁知道Postgres是否可以“简洁地”显示查询结果,就像MySQL在命令行上用\ G结束查询时的方式一样?例如,“从某个表中选择*”,而不是“从某个表中选择*”;

非常感谢!

#1 楼

我对MySQL不太了解,无法知道\ G选项的作用,但是根据文档,它看起来像psql \ x选项可能可以满足您的要求。

这是一个切换,因此您可以在提交查询之前执行此操作。

\x
select * from sometable;


#2 楼

实际上,您可以通过将以下内容放在〜/ .psqlrc中,在psql中基于每个查询启用\ G mysql样式格式:

\set G '\set QUIET 1\x\g\x\set QUIET 0'


然后可以使用:在psql客户端中查询末尾的G与在mysql客户端中查询末尾的\ G相同:

pagila=# select * from foo limit 1;
 id | uniq | val |       val_ts        
----+------+-----+---------------------
  1 |    1 |   3 | 2007-07-03 00:00:00
(1 row)

Time: 11.481 ms
pagila=# select * from foo limit 1 :G
-[ RECORD 1 ]---------------
id     | 1
uniq   | 1
val    | 3
val_ts | 2007-07-03 00:00:00


#3 楼

从此答案中借用:

可以将\x\g\x附加到查询中,就像使用MySQL的\G一样。例如:

select * from users \x\g\x


请注意,上述行中缺少;,这是有意的。

具有启用扩展显示的作用。 ,运行表达的查询并禁用扩展显示,全部都在一条语句中。

#4 楼

从PostgreSQL 10开始,psql具有\gx,与mysql的\G完全等效。

select * from sometable \gx


文档:


\ gx [文件名]
\ gx [|命令]
\ gx等效于\ g,但是对此查询强制使用扩展的输出模式。
请参见\ x。


序列\x\g\x的功能相同,但仅当\x(=扩展显示)关闭时。否则,情况恰恰相反!相比之下,\gx始终以扩展的输出显示,而与\x的当前状态无关。

#5 楼

您可以在运行命令之前使用\ x将psql切换为扩展模式,但不能像在mysql中那样在逐个命令的基础上将psql切换为扩展模式。