Postgresql aiopg/psycopg2自动提交和事务
我的怀疑很幼稚,但是 由于psycopg2异步连接是自动提交的,所以我正在手动设置在同一游标/连接中定义并关闭的事务 像这样:Postgresql aiopg/psycopg2自动提交和事务,postgresql,psycopg2,python-asyncio,aiopg,Postgresql,Psycopg2,Python Asyncio,Aiopg,我的怀疑很幼稚,但是 由于psycopg2异步连接是自动提交的,所以我正在手动设置在同一游标/连接中定义并关闭的事务 像这样: async def transaction(self, queries): async with aiopg.create_pool(connection) as pool: async with pool.acquire() as conn: async with conn.cursor() as cur:
async def transaction(self, queries):
async with aiopg.create_pool(connection) as pool:
async with pool.acquire() as conn:
async with conn.cursor() as cur:
await cur.execute('BEGIN transaction;')
for query in queries:
await cur.execute(query)
await cur.execute('COMMIT transaction;')
我的疑问是,由于它完全是异步的,如果存在回滚,那么在同一时间内处理的其他命令是否也会回滚,或者是否会基于连接回滚
谢谢 回滚是基于连接的。谢谢piro,我结束了使用asyncpg,因为它带有内置事务,我觉得比手动创建它们更安全。