我试图在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"
如果脚本的任何位置都没有BEGIN;
或START TRANSACTION;
,则pgAdmin必须将整个脚本作为一个“多语句”发送到数据库。
在这种情况下,您必须一一选择并执行CREATE DATABASE
语句。
考虑使用psql
使此工作更舒适。