代码语言:javascript复制
$ 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等)。 这里对其做了些精简,只保留了部分通用的配置。