Postgres等同于MySQL的\ G?


78

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

非常感谢!

Answers:


93

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

但是,这是一个切换,因此您在提交查询之前先进行此操作。

\x
select * from sometable;

34

实际上,您可以通过将以下内容放在〜/ .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

16

这个答案中借:

您可以\x\g\x像对MySQL的一样将查询追加到查询中\G。例如:

select * from users \x\g\x

注意;上面一行中的缺少,这是有意的。

这具有启用扩展显示,运行所表达的查询以及禁用扩展显示的全部效果。


7

因为PostgreSQL 10,psql已经\gx是MySQL的完全等效\G

select * from sometable \gx

说明文件

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

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


3

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.