postgresql:不能在事务块内运行

Posted

技术标签:

【中文标题】postgresql:不能在事务块内运行【英文标题】:postgresql: cannot run inside a transaction block 【发布时间】:2021-07-04 00:02:37 【问题描述】:

我正在尝试在SQLboxphppgadmin 中一起运行这些命令

CREATE DATABASE "ir-staging";
CREATE USER django WITH ENCRYPTED PASSWORD 'django';
GRANT ALL PRIVILEGES ON DATABASE "ir-staging" TO django;

我明白了

SQL error:

ERROR:  CREATE DATABASE cannot run inside a transaction block
In statement:
CREATE DATABASE "ir-staging";
CREATE USER django WITH ENCRYPTED PASSWORD 'django';
GRANT ALL PRIVILEGES ON DATABASE "ir-staging" TO django

如果我运行

CREATE DATABASE "ir-staging";

单独使用

【问题讨论】:

【参考方案1】:

非常简单:

https://www.postgresql.org/docs/current/sql-createdatabase.html

CREATE DATABASE 不能在事务块内执行。

从外观上看,Sqlbox 在运行多个语句并触发错误时正在使用BEGIN; 启动事务。而对于单个事务,它以自动提交模式运行。查看文档以查看是否可以将自动提交指定为默认操作。或者更好的是使用psql

【讨论】:

以上是关于postgresql:不能在事务块内运行的主要内容,如果未能解决你的问题,请参考以下文章

不能在 Entity Framework 6.1.3 和 PostgreSQL 中使用打开的事务

使用 sqlalchemy 连接到本地 postgresql

Postgresql 捕获事务错误和回滚

postgresql事务处理与并发控制

Redis事务的操作

PostgreSQL表膨胀不能清理问题分析处理