MySQLがコマンドラインで\ Gでクエリを終了するときのように、Postgresがクエリを「きれいに」表示する方法があるかどうか誰かが知っていますか?たとえば、「select * from sometable;」ではなく、「select * from sometable\G」を使用します。
どうもありがとう!
私はMySQLに慣れていないので、\ Gオプションの機能を理解できませんが、ドキュメントによると、psqlの\ xオプションが期待どおりの動作をするようです。
ただし、これは切り替えなので、クエリを送信する前に行います。
\x
select * from sometable;
実際、あなたは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
この答え から借りる:
MySQLの\x\g\x
と同じように、クエリに\G
を追加できます。例えば:
select * from users \x\g\x
上記の行に;
がないことに注意してください。これは意図的なものです。
これにより、拡張表示の有効化、式クエリの実行、および拡張表示の無効化がすべて1つのステートメントで行われます。
PostgreSQL 10以降、psql
にはmysqlの\gx
と完全に同等の\G
があります
select * from sometable \gx
ドキュメント :
\ gx [ファイル名]
\gx [|コマンド]
\gxは\ gと同じですが、このクエリに対して拡張出力モードを強制します。\xを参照してください。
シーケンス\x\g\x
も同じですが、\x
(=拡張表示)がオフの場合のみです。そうでなければ、それは逆になります!対照的に、\gx
は、現在の\x
の状態に関係なく、常に拡張された出力で表示されます。
コマンドを実行する前に、\ xを使用してpsqlを拡張モードに切り替えることができますが、mysqlのようにコマンドごとに実行することはできません。