내가 필요한 부분은 psycopg2 로 해결이 가능할 것 같아서 확인해 보기로 했다.
Python과 PostgreSQL을 연결하는 패키지는 여러가지가 있다고 하지만, 가장 최근까지 지원이 되고 있는 psycopg2 (https://pypi.org/project/psycopg2/)를 이용하는 것이 일반적이다고 한다.
PIP를 통해서 설치한다.
> pip3 install psycopg2
R에서와 비슷한 포맷으로 DB를 연결하면 된다.
>>> db=psycopg2.connect(host='ADDRESS', dbname='DBNAME', user='postgres', password='password', port=5432)
PostgreSQL은 auto-commit=on 이지만, psycopg2 의 경우 이 설정이 적용이 되지 않는다. 내가 구현해야 할 부분에서는 auto-commit이 더 편하므로 auto-commit을 적용하도록 한다.
>>> db.autocommit=True
psycopg2에서는 cursor라는 개념이 있고, cursor를 이용하여 SQL쿼리를 수행한다고 보면 되는 것 같다. Python에서는 문자와 숫자가 구별되어 있으나 psycopg2에서는 아니다. 숫자를 입력하고 싶어도 %s를 이용한다.
db.cursor().execute("INSERT INTO TABLE (col1 , col2) values (%s, CURRENT_TIMESTAMP)", [110])