2017-02-21 4 views
0

私の疑問は非常にSQLishしかし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: 
       await cur.execute('BEGIN transaction;') 
       for query in queries: 
        await cur.execute(query) 
       await cur.execute('COMMIT transaction;') 

私の疑問は、ロールバックがあれば、同じタイムスパンで処理された他のコマンドもロールバックしますかあなたは接続がベースのロールバックされ、そのcompletly非同期以来のですか?

ありがとうございます!

答えて

1

ロールバックは接続ベースです。

+0

ありがとうpiro、私はasyncpgを使って終了しました。なぜなら組み込みのトランザクションは手動で作成するよりも安全だと思います。 – monobot

関連する問題