Sql Alchemy无法在事务块内运行

时间:2017-07-06 22:03:21

标签: python sqlalchemy amazon-redshift

我试图从python脚本中运行redshift中的查询,但我收到错误:

{1}

这是我的代码:

String.Replace("{0}", userID);

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:5)

对于PostgreSQL,您需要将isolation level设置为AUTOCOMMIT,而不是SQLAlchemy autocommit

conn.execution_options(isolation_level="AUTOCOMMIT").execute(query)

答案 1 :(得分:0)

This solution对我来说就像使用sqlalchemy:session而不是:conn作为@univerio answer

我在这里引用他们的答案

from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
engine = create_engine('postgresql+psycopg2://USER:PASSWORD@127.0.0.1:5432/DB_OR_TEMPLATE')
session = sessionmaker(bind=engine)()
session.connection().connection.set_isolation_level(0)
session.execute('CREATE DATABASE test')
session.connection().connection.set_isolation_level(1)

如果您没有任何数据库,则应使用template1

"""Isolation level values."""
ISOLATION_LEVEL_AUTOCOMMIT     = 0
ISOLATION_LEVEL_READ_COMMITTED = 1
ISOLATION_LEVEL_SERIALIZABLE   = 2