我怀疑是非常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;')
我怀疑是因为它是完全异步的,如果有回滚,那么在同一时间段内处理的其他命令也会被回滚,还是会回滚连接?
谢谢!
答案 0 :(得分:2)
回滚是基于连接的。