최신 데이터베이스 개발에서 DataGrip과 같은 도구는 커밋, 롤백 또는 저장점 설정을 위한 그래픽 인터페이스를 제공하여 트랜잭션 처리를 더 쉽게 만듭니다.
이 기사에서는 SQL에서 COMMIT, ROLLBACK 및 SAVEPOINT를 정의하고 오라클, MySQL 또는 PostgreSQL(Python)
주요 거래 개념정의: 트랜잭션을 마무리하고 모든 변경 사항을 데이터베이스에 영구적으로 적용합니다.
•
사용 사례: 트랜잭션의 모든 작업이 성공하면 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!