web-dev-qa-db-ja.com

MySQLの\ Gに相当するPostgres?

MySQLがコマンドラインで\ Gでクエリを終了するときのように、Postgresがクエリを「きれいに」表示する方法があるかどうか誰かが知っていますか?たとえば、「select * from sometable;」ではなく、「select * from sometable\G」を使用します。

どうもありがとう!

87
law

私はMySQLに慣れていないので、\ Gオプションの機能を理解できませんが、ドキュメントによると、psqlの\ xオプションが期待どおりの動作をするようです。

ただし、これは切り替えなので、クエリを送信する前に行います。

\x
select * from sometable;
100
Adam Ruth

実際、あなたはcanを〜/ .psqlrcに次のように入力することで、psqlでクエリごとに\ G mysqlスタイルのフォーマットを有効にします。

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

その後、mysqlクライアントのクエリの最後で\ Gを使用するのと同じように、psqlクライアントのクエリの最後で: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
34
mage2k

この答え から借りる:

MySQLの\x\g\xと同じように、クエリに\Gを追加できます。例えば:

select * from users \x\g\x

上記の行に;がないことに注意してください。これは意図的なものです。

これにより、拡張表示の有効化、式クエリの実行、および拡張表示の無効化がすべて1つのステートメントで行われます。

19
Eben Geer

PostgreSQL 10以降、psqlにはmysqlの\gxと完全に同等の\Gがあります

select * from sometable \gx

ドキュメント

\ gx [ファイル名]
\gx [|コマンド]
\gxは\ gと同じですが、このクエリに対して拡張出力モードを強制します。\xを参照してください。

シーケンス\x\g\xも同じですが、\x(=拡張表示)がオフの場合のみです。そうでなければ、それは逆になります!対照的に、\gxは、現在の\xの状態に関係なく、常に拡張された出力で表示されます。

9
Daniel Vérité

コマンドを実行する前に、\ xを使用してpsqlを拡張モードに切り替えることができますが、mysqlのようにコマンドごとに実行することはできません。

3
David Pashley