ホームページ >バックエンド開発 >Python チュートリアル >SQL トランザクション - Python を使用した COMMIT、ROLLBACK、およびセーブポイント
最新のデータベース開発では、DataGrip などのツールにより、コミット、ロールバック、またはセーブポイントの設定のためのグラフィカル インターフェイスが提供され、トランザクション処理が容易になります。
この記事では、SQL で COMMIT、ROLLBACK、および SAVEPOINT を定義し、Oracle、MySQL、またはPython の PostgreSQL。
主要なトランザクション概念定義: トランザクションを終了し、すべての変更をデータベースに永続的にします。
•
ユースケース: トランザクション内のすべての操作が成功した場合は COMMIT を使用し、データベースに変更が確実に反映されるようにします。
定義: トランザクション中に行われたすべての変更を元に戻し、データベースを以前の状態に復元します。
•
ユースケース: ROLLBACK を使用してエラーを処理したり、失敗したトランザクションを元に戻したりします。
定義: トランザクション内に名前付きチェックポイントを設定し、トランザクション全体を元に戻さずにその時点までの部分的なロールバックを許可します。
•
ユースケース: SAVEPOINT を使用して、複数のステップで複雑なトランザクションを管理し、必要に応じて選択的にロールバックします。
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}")まとめ
データ関連の洞察を調査するために時間を割いていただき、ありがとうございます。ご協力に感謝いたします。
? LinkedIn で私とつながりましょう
以上がSQL トランザクション - Python を使用した COMMIT、ROLLBACK、およびセーブポイントの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。