Dies ist eine alte Version des Dokuments!
Es gibt mehrere Möglichkeiten das commit oder rollback über Context-Blöcke zu steuern
with psycopg.connect(someconnectionninformation) as connection: cursor = connection.cursor() cursor.execute(somestatement) cursor.execute(someotherstatement)
Außerdem wird die Verbindung zur Datenbank danach geschlossen
with psycopg.connect(someconnectionninformation) as connection: cursor = connection.cursor() with connection.transaction(): cursor.execute(somestament) cursor.execute(somestament) with connection.transaction(): cursor.execute(somestament) cursor.execute(somestament)
Man muss allerdings aufpassen, wenn außerhalb der transaction-Blöcke Statements ausgeführt werden, dann starten diese implizit Transaktionen und die transaction-Blöcke erstellen dann nur savepoint sub-transactions.
Ggf. sollte man beim connect dann autocommit=True setzen, dann werden alle Statements außerhalb der transaction-Blöcke als eigene Transaktionen gehandhabt, die sofort commited sind.
conn.execute(insert into whatever values(%s); select * from somethingelse where id = %s, ("firstvalue", "secondvalue"))
create temp table somename (somerow varchar) on commit delete rows;