如何为常用PostgreSQL查询创建别名,可在任意数据库便捷执行?
在psql中为常用查询创建全局可执行别名
你可以通过配置psql的客户端初始化文件.psqlrc,给这个查询创建一个全局别名,这样不管连接哪个PostgreSQL数据库,都能直接调用执行。具体步骤如下:
编辑或创建
.psqlrc文件
打开用户主目录下的.psqlrc文件(如果不存在就新建一个),可以用文本编辑器或终端命令操作,比如:vim ~/.psqlrc添加自定义查询别名
在文件中加入以下内容,把目标查询定义为一个psql变量(这里用tablesize作为别名,你可以改成自己喜欢的名称):\set tablesize $$select n, pg_size_pretty(s) from ( select n, pg_total_relation_size(n) s from ( select format('%I.%I', table_schema, table_name) n from information_schema.tables ) ) order by s desc;$$这里用
$$作为查询内容的包裹符,避免了单引号转义的麻烦,写法更简洁。生效并使用别名
- 保存
.psqlrc后,下次启动psql时配置会自动加载。如果想在当前已打开的psql会话中立即生效,执行:\i ~/.psqlrc - 之后不管连接哪个数据库,只要输入
:tablesize就能执行你预设的查询了。
- 保存
额外说明
- 这个配置是客户端级别的,只针对当前操作系统用户生效,不需要在每个数据库中单独创建对象。
- 别名名称只要符合psql的变量命名规则(不含特殊字符),都可以自定义,比如改成更短的
ts,方便快速输入。
内容的提问来源于stack exchange,提问作者Andy
相关产品推荐
相关产品推荐

