题 Postgres相当于MySQL的\ G?


有没有人知道Postgres是否有办法“漂亮地”显示查询结果,就像MySQL在命令行上用\ G结束查询时的做法一样?例如,“select * from sometable \ G”而不是“select * from sometable”。

非常感谢!


69
2017-07-01 21:54






答案:


我不熟悉MySQL以了解\ G选项的作用,但根据文档,它看起来像psql \ x选项可能会做你想要的。

但这是一个切换,所以你在提交查询之前就这样做了。

\x
select * from sometable;

83
2017-07-01 22:24





其实,你 能够 通过将以下内容放在〜/ .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

29
2017-07-07 18:54





借来自 这个答案

你可以追加 \x\g\x 像MySQL一样对查询进行查询 \G。例如:

select * from users \x\g\x

注意缺乏 ; 在上面这行中,这是故意的。

这具有在一个语句中启用扩展显示,运行表达式查询和禁用扩展显示的效果。


12
2018-01-20 16:41





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


3
2017-07-01 22:21





自PostgreSQL 10以来, psql 具有 \gx 这与mysql的确切等价 \G

select * from sometable \gx

文档

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

序列 \x\g\x 做同样的事情,但只有在 \x (=展开显示)已关闭。否则它恰恰相反!相比之下 \gx 始终显示扩展输出独立于当前的制度 \x


1
2017-07-18 13:29