$ cat .psqlrc 内容如下:
-- 隐藏确认消息
\set QUIET
-- 检查是否连的pgbouncer,如果是,则不能运行select语句
\if `test :DBNAME = pgbouncer && echo 1 || echo 0`
-- 如果是pgbouncer,则提示符如下
\set PROMPT1 '%`date +%H:%M:%S` db: %n@%/\n%x%R%# '
\else
-- 不是pgbouncer,则可以运行select语句
--如果是通过pgbouncer连接的数据库,则%p不是真正的进程号,需要使用pg_backend_pid获取当前session进程号
SELECT pg_backend_pid() \gset
--使用以下提示符格式
\set PROMPT1 '%`date +%H:%M:%S` db: %n@%/, pid:%:pg_backend_pid:\n%x%R%# '
\endif
-- 公共设置
\set PROMPT2 '%R%# '
\pset null '[null]'
-- 使用合理的 pager
\pset pager always
\setenv PAGER 'less -iMFXSx4R'
-- 使用unicode边框风格
\pset linestyle unicode
-- 显示确认消息
\unset QUIET
-- vim: set ft=sql:
效果如下:
原始出处: https://www.depesz.com/2021/06/23/a-tale-of-making-company-wide-standard-psqlrc/
原始内容中,里面加了个function,用于获取PG实例的一些信息(env、role等)。 这里对其做了些精简,只保留了部分通用的配置。