Heim >Backend-Entwicklung >Python-Tutorial >SQL-Transaktionen – COMMIT, ROLLBACK und Savepoints mit Python
In der modernen Datenbankentwicklung vereinfachen Tools wie DataGrip die Transaktionsabwicklung, indem sie grafische Schnittstellen zum Festschreiben, Zurücksetzen oder Festlegen von Sicherungspunkten bereitstellen.
In diesem Artikel definieren wir COMMIT, ROLLBACK und SAVEPOINT in SQL und zeigen, wie diese Transaktionskontrollen bei der Arbeit mit Oracle, MySQL, oder PostgreSQL in Python.
Wichtige TransaktionskonzepteDefinition: Schließt eine Transaktion ab und macht alle Änderungen dauerhaft in der Datenbank.
•
Anwendungsfall: Verwenden Sie COMMIT, wenn alle Vorgänge in einer Transaktion erfolgreich sind, um sicherzustellen, dass die Datenbank die Änderungen widerspiegelt.
Definition: Macht alle während einer Transaktion vorgenommenen Änderungen rückgängig und stellt die Datenbank in ihrem vorherigen Zustand wieder her.
•
Anwendungsfall: Verwenden Sie ROLLBACK, um Fehler zu behandeln oder eine fehlgeschlagene Transaktion rückgängig zu machen.
Definition: Legt einen benannten Prüfpunkt innerhalb einer Transaktion fest und ermöglicht teilweise Rollbacks zu diesem Punkt, ohne die gesamte Transaktion rückgängig zu machen.
•
Anwendungsfall: Verwenden Sie SAVEPOINT, um komplexe Transaktionen mit mehreren Schritten zu verwalten und bei Bedarf selektiv zurückzusetzen.
Allgemeine Schritte für Transaktionen in Python
import cx_Oracle # Connect to Oracle Database connection = cx_Oracle.connect("user/password@localhost/XEPDB1") cursor = connection.cursor()
try: # Start Transaction cursor.execute("UPDATE Accounts SET Balance = Balance - 100 WHERE Name = 'Alice'") cursor.execute("UPDATE Accounts SET Balance = Balance + 100 WHERE Name = 'Bob'") # Commit the transaction connection.commit() print("Transaction committed successfully!") except Exception as e: # Rollback in case of error connection.rollback() print(f"Transaction failed. Rolled back changes. Error: {e}")
try: # Start Transaction cursor.execute("UPDATE Accounts SET Balance = Balance - 200 WHERE Name = 'Alice'") connection.commit() # Savepoint cursor.execute("SAVEPOINT Savepoint_After_Alice") # Add 200 to Bob (intentional error to demonstrate rollback) cursor.execute("UPDATE Accounts SET Balance = Balance + 200 WHERE Name = 'Unknown'") # Commit if successful connection.commit() except Exception as e: # Rollback to savepoint cursor.execute("ROLLBACK TO Savepoint_After_Alice") connection.commit() print(f"Rolled back to savepoint. Error: {e}")Zusammenfassung
Vielen Dank, dass Sie sich die Zeit genommen haben, mit mir datenbezogene Erkenntnisse zu erkunden. Ich schätze Ihr Engagement.
? Vernetzen Sie sich mit mir auf LinkedIn
Das obige ist der detaillierte Inhalt vonSQL-Transaktionen – COMMIT, ROLLBACK und Savepoints mit Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!