aiopg / psycopg2自动提交和事务

时间:2017-02-21 10:51:06

标签: postgresql psycopg2 python-asyncio aiopg

我怀疑是非常SQLish但是

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

我怀疑是因为它是完全异步的,如果有回滚,那么在同一时间段内处理的其他命令也会被回滚,还是会回滚连接?

谢谢!

1 个答案:

答案 0 :(得分:2)

回滚是基于连接的。