2016-06-28 2 views
0

psycopg2로 사용자 암호를 업데이트하면 성공적으로 실행되지만 암호는 변경되지 않습니다.psycopg2를 사용하여 사용자 암호를 변경할 수 없음

conn = psycopg2.connect("dbname='my_db' user='my_user' host='localhost' password='dbpass'") 

cur = conn.cursor() 

update_password_query = """ALTER USER my_user WITH PASSWORD %(password)s""" 
cur.execute(update_password_query, {"password": new_password}) 

EXECUTE 문이 None을 반환 성공적인 쿼리에 대한 예상된다

여기 내가 사용하는 코드입니다. 나는이 변화가 충실 얻기 위해 실행 한 후

conn.commit() 

을 할 필요가 같은

답변

0

보인다. 문서 http://initd.org/psycopg/docs/connection.html에서

:

커밋() 데이터베이스에 보류중인 트랜잭션을 커밋합니다.

기본적으로 Psycopg는 첫 번째 명령을 실행하기 전에 트랜잭션을 엽니 다. 즉, commit()이 호출되지 않으면 데이터 조작의 영향이 손실됩니다.

연결은 "자동 커밋"모드에서도 설정할 수 있습니다. 트랜잭션이 자동으로 열리지 않고 명령이 즉시 적용됩니다.

또한 Use python to execute line in postgresql

참조
관련 문제