aiopg/psycopg2 自动提交和事务

aiopg/psycopg2 autocommit and transactions

我的疑问很 SQLish 但是

由于 psycopg2 异步连接是自动提交的,我手动设置定义的事务然后在相同的 cursor/connection.

中关闭

像这样:

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;')

我的疑问是,由于它是完全异步的,如果有回滚,在同一时间跨度内处理的其他命令是否也会回滚,或者你会根据连接回滚吗?

谢谢!!

回滚是基于连接的。