gpt4 book ai didi

postgresql - 通过 shell 连接时,如何在 PostgreSQL 中自动执行查询?

转载 作者:行者123 更新时间:2023-11-29 11:56:46 26 4
gpt4 key购买 nike

当我使用 psql 连接到 Postgres 时,我希望能够自动执行一条语句,然后保持连接状态,以便我可以输入更多命令。

目前,每次连接时,我做的第一件事就是输入:

SET search_path = 'something';

或者也许我想做其他事情,比如:

SELECT COUNT(*) FROM sometable;

我知道 psql 有一个 -c 参数,它会执行一个命令然后退出。我正在寻找一种可以在连接时执行命令然后留在客户端的方法。

(注意:我不想更改数据库、模式或角色来使 search_path 永久化,因为我发现的所有解决方案似乎都是强制性的。我想每次都设置它connect。但同样,这个问题可以适用于任何 SQL 语句。)

我试过这个:

echo "SET search_path TO 'mything'" | psql 

但这与以下行为相同:

psql -c "SET search_path TO 'mything'"

我要求的是可行的吗?

最佳答案

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=#

关于postgresql - 通过 shell 连接时,如何在 PostgreSQL 中自动执行查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33286992/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com