Postgresql 如何检查自动提交是否开启postgres';psql

Postgresql 如何检查自动提交是否开启postgres';psql,postgresql,autocommit,Postgresql,Autocommit,我使用的是postgres 9.5。如何检查自动提交是启用还是禁用?我尝试了SHOW AUTOCOMMIT,在那里我得到了错误:无法识别的配置参数“AUTOCOMMIT”,然后我做了一个\set AUTOCOMMIT off,然后SHOW AUTOCOMMIT给了我空白输出。如何识别自动提交是打开还是关闭?也可以在我的sql文件中创建数据库时/之后将其设置为关闭吗?根据Dustin Marx的文章,您可以使用: \echo :AUTOCOMMIT 如果希望“始终”禁用自动提交,则设置 可以将A

我使用的是postgres 9.5。如何检查自动提交是启用还是禁用?我尝试了
SHOW AUTOCOMMIT
,在那里我得到了
错误:无法识别的配置参数“AUTOCOMMIT”
,然后我做了一个
\set AUTOCOMMIT off
,然后
SHOW AUTOCOMMIT
给了我空白输出。如何识别自动提交是打开还是关闭?也可以在我的sql文件中创建数据库时/之后将其设置为关闭吗?

根据Dustin Marx的文章,您可以使用:

\echo :AUTOCOMMIT
如果希望“始终”禁用自动提交,则设置 可以将AUTOCOMMIT off meta命令添加到本地~/.psqlrc 文件对于更全局的设置,可以放置此meta命令 在数据库的系统配置目录中的apsqlrc文件中(可以 使用PostgreSQL操作系统级命令pg_config定位 --sysconfdir)


一种快速而肮脏的方法就是执行commit;并查找下面的消息以推断自动提交是否启用

错误报告- SQL错误:启用自动提交时无法提交


注意:我使用了SQLDeveloper,所以不确定是否有其他IDE

好问题。“自动提交”似乎一直处于启用状态,当我尝试查看设置时,也收到了相同的消息。第9.4页至少显示了自动提交无法设置为关闭的文本。但是9.5和9.6给出了这个错误,尽管文档仍然包含set和show autocommit命令。是的,在postgres中,autocommit默认是打开的。我们可以使用
\set AUTOCOMMIT off
将其关闭,谢谢。什么地方是最好的永久出发的地方?在我的应用程序中,我有一个创建数据库的sql文件。我应该在那里设置吗?我得到了
你需要安装postgresql-server-dev-X.Y来构建服务器端扩展,或者安装libpq-dev来构建客户端应用程序。
当我执行
pg_config--sysconfdir
@love2code时:将
set
语句放入
~/.psqlrc
中,如回答中所述,我确实尝试过。cat~/.psqlrc提供了
---系统范围的psql配置文件----此文件在用户主目录中的.psqlrc文件之前读取。---将其复制到安装的sysconf目录,并将其重命名为psqlrc。-可以通过“pg_config--sysconfdir”来标识sysconf目录\将自动提交设置为关闭
注销并再次登录,但
echo:AUTOCOMMIT
始终处于打开状态。我猜错误在于在.psqlrc中使用
\set
-它应该是普通的
设置自动提交=关闭