How to resolve PostgreSQL Error: psycopg2.errors.ActiveSqlTransaction: CREATE DATABASE cannot run inside a transaction block | Python | Using PostgreSQL with Python
Solution:
Step 1: Set the isolation level for the PostgreSQL transaction using psycopg2
The psycopg2 adapter will raise an ActiveSqlTransaction exception if you don’t set the connection object’s set_isolation_level attribute. This is because the CREATE DATABASE statement won’t work unless AUTOCOMMIT is set to ON.
from psycopg2 import connect, extensions
host = "localhost"
user = "postgres"
password = "your password"
connection = connect(host=host, user=user, password=password, port="5432")
get the isolation leve for autocommit
autocommit = extensions.ISOLATION_LEVEL_AUTOCOMMIT
print ("ISOLATION_LEVEL_AUTOCOMMIT:", extensions.ISOLATION_LEVEL_AUTOCOMMIT)
set the isolation level for the connection's cursors
will raise ActiveSqlTransaction exception otherwise
conn.set_isolation_level( autocommit )
cur = connection.cursor()
query = "CREATE DATABASE YOUR_DB_NAME"
cur.execute(query)
connection.close()
En esta página del sitio puede ver el video en línea PostgreSQL| psycopg2.errors.ActiveSqlTransaction: CREATE DATABASE cannot run inside a transaction de Duración hora minuto segunda en buena calidad , que subió el usuario Development With Sachin 26 noviembre 2022, comparta el enlace con amigos y conocidos, en youtube este video ya ha sido visto 3,091 veces y le gustó 14 a los espectadores. Disfruta viendo!