PostgreSQL PSQL脚本路径

3

我正在制作一个有用的SQL脚本目录,以便在使用psql时能够使用它们。我希望能够不必进入该目录即可使用它们。

是否可以配置psql搜索特定路径以调用脚本?还是我必须使用完全限定名称来调用它们?

3个回答

3
您可以将脚本放置在您的.psqlrc文件中:
\set uptime 'select now() - backend_start as uptime from pg_stat_activity where pid = pg_backend_pid();'

然后在psql中运行查询时,需要在查询前加上冒号:uptime

或者

如果您的脚本很长,希望更好地组织它们,那么您可以创建脚本目录~/psqlrc.d,然后(例如)(假设使用*nix操作系统):

echo "select now() - backend_start as uptime from pg_stat_activity where pid = pg_backend_pid();" > ~/psqlrc.d/uptime.sql

接下来需要编辑您的~/.psqlrc文件并添加以下内容:

\set uptime '\\i ~/psqlrc.d/uptime.sql'

然后在 psql 中输入 :uptime 来再次调用该脚本。


2
可以使用启动文件psqlrc来实现。根据文档:

psqlrc~/.psqlrc

除非传递了-X-c选项,否则在连接到数据库之后但在接受常规命令之前,psql会尝试从系统范围内的启动文件(psqlrc)中读取和执行命令,然后读取用户的个人启动文件(~/.psqlrc)。

创建该文件(如果尚不存在),并将psql元命令\cd放入其中。 根据文档:

\cd [ directory ]

将当前工作目录更改为directory。没有参数,则更改为当前用户的主目录。

例如,将以下内容放入您的用户的个人启动文件~/.psqlrc中:
\set QUIET ON
\cd /var/lib/postgres/script/
\set QUIET OFF

"

\set QUIET ON\set QUIET OFF可选择地抑制每次启动时\cd的消息。

"

0

有两种解决方法。

  1. 使用psql \cd命令。进入$HOME文件夹。

    sql>

    \cd

    \i git/my_project/src/abc.sql

  2. 使用操作系统软链接,

    $> ln -s ~/git/my_project ~/work/project/my_project

    psql

    sql> \i ~/work/project/my_project/abc.sql


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接