将Postgres全局设置为关闭自动提交

7

如何在全局级别设置psql 8.4中的自动提交关闭?是否有一种配置属性可以更改,以引入此行为以使集群上的所有数据库在启动数据库会话时都关闭自动提交?


2
没有这样的配置设置。 - user330315
你不应该在全局范围内关闭自动提交,如果不想进行自动提交,必须显式地使用 BEGIN 来开启一个事务。请注意PostgreSQL的版本。 - Craig Ringer
3个回答

16

只需将以下内容添加到~/.psqlrc中:

\set AUTOCOMMIT off 

请注意,这仅适用于使用psql shell时!我假设这就是你所说的?


8

如果你想要一个(开放的)事务,请使用事务:

BEGIN;
  INSERT ...;
  UPDATE ...;
COMMIT; -- when you're done

1

正如exhuma所说,你可以在个人的~/.psqlrc文件中将其设置为关闭状态。

\set AUTOCOMMIT off 

但是既然您要求全局级别,Ubuntu上正确的文件是/etc/postgresql-common/中没有前导点的psqlrc。

要评估您系统上的正确目录,您可以使用:

pg_config --sysconfdir 

在这里有一个样例psqlrc文件:

/usr/share/postgresql/12/psqlrc.sample

(显然是版本12)但它不包含进一步的信息。

使用以下方法在您的系统中找到它

locate psqlrc 

我不能确定这个信息是否适用于版本号低于12的旧版,但从我的记忆来看,至少对于个人rc文件是适用的。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接