CREATE DATABASE无法在pgadmin 4中的事务块内运行

问题描述 投票:0回答:1

我试图在pgAdmin 4中运行脚本,但出现此错误:

CREATE DATABASE cannot run inside a transaction block

这是脚本:

CREATE USER ky_auth WITH PASSWORD 'ky_auth';
COMMENT ON ROLE ky_auth IS 'KnowYourself Auth Database User';
CREATE DATABASE ky_auth WITH OWNER = ky_auth;
COMMENT ON DATABASE ky_auth IS 'KnowYourself Auth Database';

CREATE USER ky_pers WITH PASSWORD 'ky_pers';
COMMENT ON ROLE ky_pers IS 'KnowYourself Personal Database User';
CREATE DATABASE ky_pers WITH OWNER = ky_pers;
COMMENT ON DATABASE ky_pers IS 'KnowYourself Personal Database';

CREATE USER ky_oper WITH PASSWORD 'ky_oper';
COMMENT ON ROLE ky_oper IS 'KnowYourself Operational Database User';
CREATE DATABASE ky_oper WITH OWNER = ky_oper;
COMMENT ON DATABASE ky_oper IS 'KnowYourself Operational Database';

CREATE USER knowyourself_tests WITH PASSWORD 'ky_tests' CREATEDB;
COMMENT ON ROLE knowyourself_tests IS 'KnowYourself Integration Tests Database User';

所以我必须改变什么?

谢谢

如果将其放在脚本上方:

SET AUTOCOMMIT = ON

然后我收到此错误:

 unrecognized configuration parameter "autocommit"
postgresql pgadmin-4
1个回答
0
投票

如果脚本的任何位置都没有BEGIN;START TRANSACTION;,则pgAdmin必须将整个脚本作为一个“多语句”发送到数据库。

在这种情况下,您必须一一选择并执行CREATE DATABASE语句。

考虑使用psql使此工作更舒适。

© www.soinside.com 2019 - 2024. All rights reserved.