■ Connecton 클래스의 commit/rollback 메소드를 사용해 트랜잭션을 처리하는 방법을 보여준다.
▶ 테스트 테이블 (SQL)
1 2 3 4 5 6 7 8 |
CREATE TABLE test ( ID INTEGER PRIMARY KEY, NAME VARCHAR, AGE INTEGER ); |
▶ 예제 코드 (PY)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
import psycopg2 from psycopg2 import Error try: connection = psycopg2.connect(host = "192.168.29.118", port = "5432", database = "testdb", user = "testuser1", password = "test1234") cursor = connection.cursor() cursor.execute("DELETE FROM test") cursor.execute("INSERT INTO test (id, name, age) VALUES (1, '홍길동', 20)") cursor.execute("INSERT INTO test (id, name, age) VALUES (2, '김철수', 30)") cursor.execute("INSERT INTO test (id, name, age) VALUES (3, '이영희', 25)") connection.commit() print("트랜잭션이 완료되었습니다.") except (Exception, Error) as error: connection.rollback() print("트랜잭션이 취소되었습니다.") print(f"PostgreSQL 연결시 에러가 발생했습니다 : {error}") finally: if connection: cursor.close() connection.close() print("PostgreSQL 연결이 종료되었습니다.") |
▶ requirements.txt
1 2 3 |
psycopg2-binary==2.9.9 |