use*_*401 2 postgresql shell psql
我希望能够在连接到Postgres时自动执行语句psql
,然后保持连接,以便我可以输入更多命令.
目前,每次连接时,我要做的第一件事就是输入:
SET search_path = 'something';
Run Code Online (Sandbox Code Playgroud)
或许我想做其他事情:
SELECT COUNT(*) FROM sometable;
Run Code Online (Sandbox Code Playgroud)
我知道-c
psql 会有一个参数执行命令然后退出.我正在寻找一种方法,我可以在连接时执行命令,然后保留在客户端.
(注意:我不想改变数据库,模式或角色来制作search_path
永久性的,因为我发现的所有解决方案似乎都要求.我想在每次连接时设置它.但同样,这个问题可以应用任何SQL声明.)
我试过这个:
echo "SET search_path TO 'mything'" | psql
Run Code Online (Sandbox Code Playgroud)
但行为与以下相同:
psql -c "SET search_path TO 'mything'"
Run Code Online (Sandbox Code Playgroud)
我要求的是可行的吗?
每次启动时,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=#
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
871 次 |
最近记录: |