我想为我对postgres数据库的访问设置默认值statement_timeout.在配置了环境变量之后,我现在有了它,psql将我记录在我首选的数据库和表中.然而,当我探索其中的几个表时,我希望语句超时大约一分钟.这可以通过在每次会话开始时键入SET statement_timeout TO '1min';来实现,但每次键入都很讨厌.我没有访问服务器配置的权限,也不想更改它.理想情况下,我可以做一些事情,使psql的alias psql='psql -c "SET statement_timeout TO '1min';"' except the-c`标志不允许交互输入.这个问题有什么好的解决方案吗?还是我总是注定要 for each 交互会话手动设置超时?

推荐答案

您可以使用.psqlrc文件(如果您的主目录中没有,请创建它;如果您在Windows而不是*nix,则文件为%APPDATA%\postgresql\psqlrc.conf)并设置以下命令:

set statement_timeout to 60000; commit;

该设置以毫秒为单位,因此将超时设置为1分钟..psqlrc不与-c-X调用psql一起使用,因此应该允许您将交互模式超时设置为1分钟.

然后,您可以在psql中执行以下操作,以验证配置是否已生效:

show statement_timeout;

Postgresql相关问答推荐

PostgreSQL数据文件是否仅在判断点期间写入磁盘?

PostgreSQL散列连接与嵌套循环和散列索引

到第二天的Postgres计时器

Postgres 对 WHERE 子句并行使用两个索引

错误:用户需要系统密码:postgres

PostgreSQL 不删除旧的 WAL 档案

将数组的所有元素循环到jsonb中并修改值

Power BI + Postgres:只读用户

如何在plpgsql中找到一行中的最大值?

是否可以在 postgresql 中添加表元数据?

PostgreSQL - 我应该如何使用 first_value()?

全文搜索(Postgres)与Elastic search

带有 -C 选项的 pg_restore 不会创建数据库

无法登录 PostgreSQL 数据库

在 row_to_json 函数中 Select 查询

错误:ERROR: table name specified more than once

PostgreSQL 使用 UUID 与文本作为主键

基于秒的 Postgresql 日期差异

JOIN (SELECT ... ) ue ON 1=1?

PostgreSQL - GROUP BY 子句或用于聚合函数