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;