通过shell连接时,如何在PostgreSQL中自动执行查询?
我希望在使用通过shell连接时,如何在PostgreSQL中自动执行查询?,postgresql,shell,psql,Postgresql,Shell,Psql,我希望在使用psql连接到Postgres时能够自动执行一条语句,然后保持连接状态,以便输入更多命令 目前,每次连接时,我要做的第一件事就是键入: SET search_path='something'; 或者我想做些别的事情,比如: 从sometable中选择COUNT(*); 我知道psql有一个-c参数,它将执行一个命令,然后退出。我正在寻找一种方法,可以在连接时执行命令,然后留在客户机中 (注意:我不希望改变数据库、模式或角色,使搜索路径永久化,因为我找到的所有解决方案似乎都要求这样
psql
连接到Postgres时能够自动执行一条语句,然后保持连接状态,以便输入更多命令
目前,每次连接时,我要做的第一件事就是键入:
SET search_path='something';
或者我想做些别的事情,比如:
从sometable中选择COUNT(*);
我知道psql有一个-c
参数,它将执行一个命令,然后退出。我正在寻找一种方法,可以在连接时执行命令,然后留在客户机中
(注意:我不希望改变数据库、模式或角色,使搜索路径永久化,因为我找到的所有解决方案似乎都要求这样做。我希望每次连接时都设置它。但是,这个问题可以应用任何SQL语句。)
我试过这个:
echo“将搜索路径设置为‘虚构’”| psql
但其行为方式与:
psql-c“将搜索路径设置为‘虚构’”
我所要求的是可行的吗?psql将在每次启动时查找并执行在几个地方找到的任何命令。一个是系统范围的psqlrc文件,另一个在运行psql的登录名的主目录中,~/.psqlrc
因此,您可以将始终希望运行的SET命令添加到.psqlrc文件中,并且每次启动时都会执行该命令。请参见下面的示例:
~ $ cat ~/.psqlrc
SET search_path='mything';
~ $ psql
SET search_path='mything';
SET
psql (8.4.20, server 9.2.10)
WARNING: psql version 8.4, server version 9.2.
Some psql features might not work.
Type "help" for help.
rhnschema=# show search_path;
search_path
-------------
mything
(1 row)
rhnschema=#
欢迎来到stackoveflow。考虑给你的答案加上解释。