`psql` 是不是有类似于 `bash` 中的 `$PATH` 的东西来搜索 SQL 脚本?

Posted

技术标签:

【中文标题】`psql` 是不是有类似于 `bash` 中的 `$PATH` 的东西来搜索 SQL 脚本?【英文标题】:Does `psql` have something similar to `$PATH` in `bash` to search for a SQL script?`psql` 是否有类似于 `bash` 中的 `$PATH` 的东西来搜索 SQL 脚本? 【发布时间】:2018-11-25 12:12:00 【问题描述】:

在 psql 中,\i 可用于读取和执行 sql 脚本。 但是我必须将脚本文件的路径名指定为\i,当路径名很长并且因脚本而异时,这非常不方便。

bashpsql\i 中是否有类似于$PATH 的内容仅根据sql 脚本的文件名搜索脚本?

或者我真的必须在每次运行 sql 脚本文件时指定 \i 的路径名吗?

谢谢。

我正在尝试将https://***.com/a/771880/156458 放入一个 sql 脚本中,以便我可以重复使用它。

【问题讨论】:

【参考方案1】:

类似于 Oracle 的 $SQLPATH。我还没有找到它。使用 Oracle 很方便,因此我可以将命令定义到单独的 SQL 文件中,并在 sqlplus 中提供它们。

对于 PostgreSQL 和 psql,我收到的唯一建议是将任何命令作为别名放在 ~/.psqlrc 中。

【讨论】:

谢谢。如果我在/path/to/sqlscripts/ 下有多个脚本,你能在 ~/.psqlrc 中举个例子吗? 不,我的意思是您实际上将所有 SQL 命令作为别名在 ~/.psqlrc 中。一个大文件。不漂亮。 是否可以对目录下的所有文件进行循环,并将文件名作为别名分配给每个文件?我可以在 bash 中做到这一点,但不确定是否可以在 psql 中完成。

以上是关于`psql` 是不是有类似于 `bash` 中的 `$PATH` 的东西来搜索 SQL 脚本?的主要内容,如果未能解决你的问题,请参考以下文章

无法从 BASH 脚本中运行 psql 命令

PostgreSQL 函数中的 psql 变量是不是有任何转义语法?

有没有办法自动将命令历史保存到 cmd.exe 中的文件中,类似于 bash 的 bash_history?

有没有办法自动将命令历史记录保存到cmd.exe中的文件,类似于bash的bash_history?

带有变量插值的命令行中的 psql 语法错误

检查Bash数组中是不是存在元素[重复]