Postgresql aiopg/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:

我的怀疑很幼稚,但是

由于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:
                await cur.execute('BEGIN transaction;')
                for query in queries:
                    await cur.execute(query)
                await cur.execute('COMMIT transaction;')
我的疑问是,由于它完全是异步的,如果存在回滚,那么在同一时间内处理的其他命令是否也会回滚,或者是否会基于连接回滚


谢谢

回滚是基于连接的。

谢谢piro,我结束了使用asyncpg,因为它带有内置事务,我觉得比手动创建它们更安全。