[python] PyMySQL을 이용하여 데이터베이스 트랜잭션을 처리하는 방법을 알아본다.

이번 블로그 포스트에서는 Python에서 MySQL 데이터베이스의 트랜잭션을 처리하는 방법에 대해 알아보겠습니다. 이를 위해 PyMySQL 라이브러리를 사용하여 MySQL 데이터베이스에 연결하고, 트랜잭션을 시작하고 커밋 또는 롤백하는 예제 코드를 작성해보겠습니다.

PyMySQL 설치하기

먼저, PyMySQL 라이브러리를 설치해야 합니다. 아래 명령어를 사용하여 PyMySQL을 설치할 수 있습니다.

pip install PyMySQL

데이터베이스 연결하기

PyMySQL을 사용하기 위해 먼저 MySQL 데이터베이스에 연결해야 합니다. 아래 코드는 PyMySQL을 사용하여 데이터베이스에 연결하는 예제입니다.

import pymysql

# MySQL 데이터베이스에 연결
connection = pymysql.connect(host='localhost',
                             user='username',
                             password='password',
                             db='database_name',
                             cursorclass=pymysql.cursors.DictCursor)

트랜잭션 시작하기

트랜잭션을 시작하기 위해 connection 객체의 begin() 메서드를 호출합니다.

# 트랜잭션 시작
connection.begin()

쿼리 실행하기

트랜잭션 안에서 쿼리를 실행할 수 있습니다. 아래 코드는 SELECT 쿼리를 실행하는 예제입니다.

try:
    with connection.cursor() as cursor:
        # 쿼리 실행
        sql = 'SELECT * FROM table_name'
        cursor.execute(sql)
        result = cursor.fetchall()

        # 결과 출력
        for row in result:
            print(row)
finally:
    connection.commit()

트랜잭션 커밋하기

트랜잭션 작업이 성공적으로 완료되었을 때, commit() 메서드를 호출하여 트랜잭션을 커밋합니다.

# 트랜잭션 커밋
connection.commit()

트랜잭션 롤백하기

트랜잭션 작업 중에 에러가 발생하거나 롤백이 필요한 경우, rollback() 메서드를 호출하여 트랜잭션을 롤백합니다.

try:
    # 트랜잭션 작업
except Exception as e:
    # 에러 발생 시 롤백
    connection.rollback()
    print("Error:", e)

데이터베이스 연결 종료하기

데이터베이스 작업이 완료되면, close() 메서드를 호출하여 데이터베이스 연결을 종료합니다.

# 데이터베이스 연결 종료
connection.close()

이상으로 Python에서 PyMySQL을 이용하여 데이터베이스 트랜잭션을 처리하는 방법에 대해 알아보았습니다. PyMySQL을 사용하여 효율적인 데이터베이스 작업을 수행할 수 있도록 위의 예제 코드를 참고해보세요.

참고 자료