ERROR: CREATE DATABASE cannot run inside a transaction block SQL state: 25001 - Using PostgresSQL and pgAdmin 4

ERROR: CREATE DATABASE cannot run inside a transaction block SQL state: 25001 - Using PostgresSQL and pgAdmin 4

大家好,我在 Postgres 上的第一个数据库遇到了问题,我找不到解决方案,我试图查看是否是设置自动提交的问题,但显然来自 postgres 9.x 它是一个不确定的操作该文档表明这可能是权限错误或磁盘已满。 这是代码

CREATE DATABASE datacamp_courses 
WITH 
OWNER = postgres
ENCODING = 'UTF8'
LC_COLLATE = 'English_United States.1252'
LC_CTYPE = 'English_United States.1252'
TABLESPACE = pg_default
CONNECTION LIMIT = -1;


CREATE TABLE datacamp_courses (
    course_id SERIAL PRIMARY KEY,
    course_name VARCHAR (50) UNIQUE NOT NULL,
    course_instructor VARCHAR (100) NOT NULL,
    topic VARCHAR (2) NOT NULL
    );

这是错误:

ERROR:  CREATE DATABASE cannot run inside a transaction block
SQL state: 25001

如有任何帮助,我们将不胜感激

消息不言自明:您不能在事务中创建数据库。

您可以尝试 运行 您在 psql (CLI) 中的语句,默认情况下在 AUTOCOMMIT 中使用 运行s:它会起作用,但请注意 table 会在当前数据库(默认为 postgres)中创建,这可能不是您想要的。如果你想在这个新数据库中创建一个数据库和一个 table 你可以尝试:

  create database mydb;
  \connect mydb
  create table test(c int);

如果您在 Intellij idea 中使用数据库浏览器,select 您正在连接的数据库设置中的自动提交字段。