首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >常用查询的psql快捷方式?(如Unix的“别名”)

常用查询的psql快捷方式?(如Unix的“别名”)
EN

Stack Overflow用户
提问于 2013-04-26 07:45:47
回答 5查看 2.6K关注 0票数 11

有没有可能以某种方式在psql中创建别名(比如Unix alias命令)?

我的意思是,不是SQL函数,而是本地别名,以简化手动查询?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2013-05-13 17:04:31

为什么不使用视图呢?也许views会对你的情况有所帮助。

票数 0
EN

Stack Overflow用户

发布于 2013-04-26 18:16:43

我不知道有什么可能。只有基于psql变量的psql才有解决方法,但是有很多限制-使用参数进行这种查询是困难的。

代码语言:javascript
运行
复制
postgres=# \set whoami 'SELECT CURRENT_USER;'
postgres=# :whoami
 current_user 
--------------
pavel
(1 row)
票数 19
EN

Stack Overflow用户

发布于 2016-03-24 23:08:57

Pavel的答案几乎是正确的,除非你可以以另一种方式使用参数。

之后

代码语言:javascript
运行
复制
\set s 'select * from '
\set l ' limit 10;'

以下命令

代码语言:javascript
运行
复制
:s agent :l

将等于

代码语言:javascript
运行
复制
select * from agent limit 10;

根据http://www.postgresql.org/docs/9.0/static/app-psql.html的说法

如果未加引号的参数以冒号(:)开头,则将其视为psql变量,并将变量的值用作参数。如果变量名括在单引号中(例如:'var'),它将作为SQL文本进行转义,并将结果用作参数。如果变量名括在双引号中,则将其转义为SQL标识符,并将结果用作参数。

您还可以使用反引号来运行shell命令

用反引号(`)括起来的

参数被当作传递给shell的命令行。该命令的输出(删除了所有尾随的换行符)将作为参数值。上面的转义序列也适用于反引号。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16226514

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档