MySQLの\ Gと同等のPostgres?


78

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

どうもありがとう!

回答:


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'

その後、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

16

この答えから借りる:

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

select * from users \x\g\x

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

これには、拡張表示の有効化、表現されたクエリの実行、拡張表示の無効化の効果があり、すべて1つのステートメントで実行されます。


7

PostgreSQLの10は、以来psql持っている\gxMySQLのの、完全に同等です\G

select * from sometable \gx

ドキュメント

\ gx [filename]
\ gx [| command]
\ gxは\ gと同等ですが、このクエリの拡張出力モードを強制します。\ xを参照してください。

シーケンス\x\g\xも同じですが、\x(=展開表示)がオフの場合のみです。それ以外の場合は逆です!対照的\gxに、の現在のレジームとは無関係に常に拡張出力で表示されます\x


3

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.