2012-02-10 3 views

답변

2

나는 어떤 종류의 exception to be risen을 기대하고 있습니다.
모든 것이 정상적으로 완료되면 오류 코드는 00000이며 아무런 예외도 발생하지 않습니다.

create table 경우, 당신은 항상 double check 할 수 있습니다

try: 
    cur.execute("SELECT ouch FROM aargh;") 
except Exception, e: 
    pass 

errorcodes.lookup(e.pgcode[:2]) 
# 'CLASS_SYNTAX_ERROR_OR_ACCESS_RULE_VIOLATION' 
errorcodes.lookup(e.pgcode) 
# 'UNDEFINED_TABLE' 
3

이 오래된 질문이지만, psycopg2 성공적인 작동하는지 확인하는 한 가지 방법 후 커서의 rowcount 속성을보고 단순히 당신의 성명서. 이 특성은 마지막 execute 문에 의해 영향을받는 행 수를 반환합니다.

connection = psycopg2.connect(dbname="foo",user="postgres") 
cur = connection.cursor() 
cur.execute("INSERT INTO foo VALUES (%s, %s)", (1,2)) 
cur.rowcount # returns 1 
cur.execute("SELECT * FROM foo") 
cur.rowcount # returns 0 

유사한 특성이 영향 행수와 함께 실행되는 마지막 동작의 타입을 포함하는 문자열을 반환 messagestatus이다.

+0

비슷한 속성은 실제로'statusmessage'입니다. 문서는 [here] (http://initd.org/psycopg/docs/cursor.html)에 있습니다. –