Heim > Backend-Entwicklung > Python-Tutorial > SQL-Transaktionen – COMMIT, ROLLBACK und Savepoints mit Python

SQL-Transaktionen – COMMIT, ROLLBACK und Savepoints mit Python

DDD
Freigeben: 2025-01-20 18:35:10
Original
389 Leute haben es durchsucht

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 Transaktionskonzepte

1. VERPFLICHTEN

Definition: 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.

2. ROLLBACK

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.

3. SAVEPOINT

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.

Python- und Datenbanktransaktionen

Beim programmgesteuerten Arbeiten mit Datenbanken stellen die Datenbankbibliotheken von Python (z. B. cx_Oracle, mysql-connector-python, psycopg2) Methoden zur expliziten Steuerung von Transaktionen bereit.

Allgemeine Schritte für Transaktionen in Python

  1. Transaktion starten: Startet automatisch mit der Verbindung, es sei denn, Autocommit ist aktiviert.
  2. SQL-Anweisungen ausführen: Führen Sie die erforderlichen Datenbankoperationen aus.
  3. Commit oder Rollback: Verwenden Sie commit(), um Änderungen abzuschließen, oder rollback(), um sie rückgängig zu machen.
  4. Sicherungspunkte verwenden: Definieren Sie für eine genauere Kontrolle Sicherungspunkte und führen Sie ein Rollback darauf durch, sofern dies unterstützt wird.
Beispiel: Python-Transaktionen mit Oracle-Datenbanken

Verbindung einrichten

import cx_Oracle

# Connect to Oracle Database
connection = cx_Oracle.connect("user/password@localhost/XEPDB1")
cursor = connection.cursor()
Nach dem Login kopieren

Verwenden von COMMIT und ROLLBACK

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}")
Nach dem Login kopieren

Mit SAVEPOINT

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}")
Nach dem Login kopieren
Zusammenfassung

Wenn Sie diese Konzepte beherrschen, können Sie Datenbanktransaktionen in realen Anwendungen effizient verwalten!


Entdecken Sie mehr

luca1iu image

Luca Liu

Hallo! ? Ich bin Luca, ein Business-Intelligence-Entwickler mit Leidenschaft für alles, was mit Daten zu tun hat. Gute Kenntnisse in Python, SQL, Power BI, Tableau und SAP Business Objects.

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

SQL-Transaktionen – COMMIT, ROLLBACK und Savepoints mit Python

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!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage