Python

[Python] psycopg2 - PostgreSQL 실행 SQL 출력

비번변경 2025. 9. 1. 09:44

개요

여러 데이터베이스 엔진과 연동하는 라이브러리는 대체로 여러 매개변수를 매핑할 수 있게 하는 placeholder를 지원한다. 이는 쿼리를 반복해서 실행할 때 유용하지만 실제 실행되는 쿼리를 한눈에 확인할 수 없다는 불편함이 있는데, 알아보니 execute 함수로 실행되는 SQL문을 확인할 수 있는 방법이 있다고 해서 적어둔다.

 

 

psycopg2.cursor.mogrify

mogrify 함수는 값을 자리대체자에 바인딩하여 SQL 쿼리 문자열을 포매팅하는 방법으로, 이는 cursor.execute 또는 유사한 메서드가 데이터베이스로 전송하는 문자열과 일치한다. 반환 문자열은 항상 바이트 문자열이다.

 

사용 예시

import psycopg2

sql = f"""\
SELECT *
FROM employees
WHERE Salary = %s;
"""

with psycopg2.connect(host=host, port=port, user=user, password=password, database=database) as conn:
    cursor = conn.cursor()
    print(cursor.mogrify(sql, (60000,)).decode('utf8'))

 

 

 

참고 문서

https://www.psycopg.org/docs/cursor.html#cursor.mogrify

https://www.geeksforgeeks.org/python/format-sql-in-python-with-psycopgs-mogrify/

 

728x90