我想为访问postgres数据库设置默认statement_timeout
。在配置我的环境变量之后,我现在可以在psql
将我登录到我的首选数据库和表中。然而,当我正在探索其中的几个表时,我希望语句超时大约一分钟。这可以通过在每个会话开始时键入SET statement_timeout TO '1min';
来完成,但每次输入都是令人讨厌的。我无权访问服务器配置,也不想更改它。理想情况下,我可以对alias psql='psql -c "SET statement_timeout TO '1min';"' except the
- c`的效果做一些事情,psql的标志不允许交互式输入。有没有解决这个问题的好方法,或者我总是注定要为每个交互式会话手动设置超时?
答案 0 :(得分:23)
您可以使用.psqlrc
文件(如果您的主目录中没有该文件,则创建该文件;如果您使用Windows
而不是*nix
,则该文件为%APPDATA%\ postgresql \ psqlrc.conf 代替)并设置以下命令:
set statement_timeout to 60000; commit;
该设置以毫秒为单位,因此将超时设置为1分钟。 .psqlrc
-c
的{{1}}和-X
调用不使用psql
,因此您可以将交互模式超时时间设置为1分钟。
然后,您可以在psql
中执行以下操作以验证配置是否已生效:
show statement_timeout;
答案 1 :(得分:4)
Postgres 允许您在每个角色(用户)级别设置诸如 statement_timeout 之类的配置参数。
ALTER ROLE <your-username> SET statement_timeout = '60s';
此更改将应用于该用户的所有新会话,从下次登录开始。