Maison > développement back-end > Tutoriel Python > Transactions SQL - COMMIT, ROLLBACK et points de sauvegarde avec Python

Transactions SQL - COMMIT, ROLLBACK et points de sauvegarde avec Python

DDD
Libérer: 2025-01-20 18:35:10
original
387 Les gens l'ont consulté

Dans le développement de bases de données modernes, des outils tels que DataGrip facilitent la gestion des transactions en fournissant des interfaces graphiques pour valider, restaurer ou définir des points de sauvegarde.

Dans cet article, nous définirons COMMIT, ROLLBACK et SAVEPOINT en SQL et montrerons comment implémenter ces contrôles de transaction lorsque vous travaillez avec Oracle, MySQL, ou PostgreSQL en Python.

Concepts clés des transactions

1. ENGAGER

Définition : Finalise une transaction, rendant toutes les modifications permanentes dans la base de données.
Cas d'utilisation : utilisez COMMIT lorsque toutes les opérations d'une transaction réussissent, en vous assurant que la base de données reflète les modifications.

2. RETOUR

Définition : annule toutes les modifications apportées au cours d'une transaction, restaurant ainsi la base de données à son état précédent.
Cas d'utilisation : utilisez ROLLBACK pour gérer les erreurs ou annuler une transaction ayant échoué.

3. POINT DE SAUVEGARDE

Définition : définit un point de contrôle nommé dans une transaction, permettant des restaurations partielles jusqu'à ce point sans annuler la totalité de la transaction.
Cas d'utilisation : utilisez SAVEPOINT pour gérer des transactions complexes en plusieurs étapes, en annulant de manière sélective si nécessaire.

Transactions Python et base de données

Lorsque vous travaillez avec des bases de données par programmation, les bibliothèques de bases de données Python (par exemple, cx_Oracle, mysql-connector-python, psycopg2) fournissent des méthodes pour contrôler explicitement les transactions.

Étapes courantes pour les transactions en Python

  1. Démarrer une transaction : démarre automatiquement avec la connexion, sauf si la validation automatique est activée.
  2. Exécuter les instructions SQL : effectuez les opérations de base de données nécessaires.
  3. Commit ou Rollback : utilisez commit() pour finaliser les modifications ou rollback() pour les annuler.
  4. Utiliser les points de sauvegarde : pour un contrôle plus précis, définissez et revenez aux points de sauvegarde s'ils sont pris en charge.

Exemple : transactions Python avec des bases de données Oracle

Configurer la connexion

import cx_Oracle

# Connect to Oracle Database
connection = cx_Oracle.connect("user/password@localhost/XEPDB1")
cursor = connection.cursor()
Copier après la connexion

Utiliser COMMIT et 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}")
Copier après la connexion

Utiliser 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}")
Copier après la connexion

Résumé

La maîtrise de ces concepts vous permet de gérer efficacement les transactions de bases de données dans des applications du monde réel !


Explorer davantage

luca1iu image

Luca Liu

Bonjour! ? Je m'appelle Luca, un développeur de Business Intelligence passionné par tout ce qui concerne les données. Maîtrise de Python, SQL, Power BI, Tableau, SAP Business Objects.

Merci d'avoir pris le temps d'explorer avec moi des informations liées aux données. J'apprécie votre engagement.

? Connectez-vous avec moi sur LinkedIn

Transactions SQL - COMMIT, ROLLBACK et points de sauvegarde avec Python

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal