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.
• 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.
• 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é.
• 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.
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
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}")
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 !
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
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!