psql コマンドを使って表示した結果のページャ(less等)の処理をスキップしたい時

結論

-P pager=off オプションを付与します。

例えば、以下のようにコマンドを実行すればページャが発動しません。

$ psql -P pager=off -U foo-p 5432 -d my_database -h localhost -c "SELECT relname, n_live_tup FROM pg_stat_user_tables WHERE schemaname='public';"

使いどころ

psql の結果をログとして自動取得する際などに有効かと思います。

例えば、上記のコマンド例での SQL文 は、全テーブルのレコード数一覧を表示するものになりますが、このようなスクリプトを毎晩回してレコード数の推移を簡易的に把握するなどの際に便利でしょう。

Powered by はてなブログ