用于 sql 查询的 postgresql 用户定义变量

Posted

技术标签:

【中文标题】用于 sql 查询的 postgresql 用户定义变量【英文标题】:postgresql user define variabe for sql query 【发布时间】:2018-04-30 14:08:03 【问题描述】:

我像这样在 psql 中设置变量 abc=# \set test 'select * from tableName;' 我正在使用安装了 postgresql 的 ubuntu 操作系统 当我退出终端时,它会丢失所以为了永久目的,我应该怎么做?

【问题讨论】:

如果你需要在数据库中存储数据,我强烈推荐一张表。 不,我只是为长查询创建快捷方式,所以我设置了变量,但是当我退出到 psql 时它丢失了,我需要再次设置变量,为了永久目的,我应该做什么不需要一次又一次地设置变量 检查我的答案,让我知道它有帮助。另请阅读:***.com/help/someone-answers 【参考方案1】:

最好的方法是创建一个配置表来存储您的所有参数。

但是,如果您希望使用操作系统级别的变量,这就是您可以在 psql 中传递 Shell 变量的方式

[pguser@test ~]$ export test_var="select 'Hello';"
[pguser@test ~]$ psql -A -t -q -d YOURDB -U youruser -p 5432 <<INP
$test_var
INP
Hello

-A -t -q 选项只是为了抑制列标题和错误输出。

永久设置您的变量,请将这一行放入~/.bashrc , ~/.bash_profile 或任何适用于您的shell 的初始化文件中。

export test='select * from tableName;'

如果你想在pg环境下定义全局变量,可以参考:Is it possible to define global variables in postgresql

【讨论】:

以上是关于用于 sql 查询的 postgresql 用户定义变量的主要内容,如果未能解决你的问题,请参考以下文章

Postgresql查询库结构及表属性SQL总结

Postgresql查询库结构及表属性SQL总结

如何为复杂的 sql 查询获取中间数据。 PostgreSQL

一次PostgreSQL行估算偏差导致的慢查询分析

具有两个内部连接的 PostgreSQL 查询

PostgreSQL 日志触发器/函数查询数据