필자는 문서를 살펴 봤지만 cursor.execute ("...")를 통해 실행 한 마지막 명령이 성공했는지 여부를 알 수있는 것을 찾지 못했습니다.테이블 (Python, Psycopg2)이 성공적으로 생성되었는지 어떻게 알 수 있습니까?
"1 행이 영향을 받았습니다."와 같은 회신을 보내고 싶습니다.
필자는 문서를 살펴 봤지만 cursor.execute ("...")를 통해 실행 한 마지막 명령이 성공했는지 여부를 알 수있는 것을 찾지 못했습니다.테이블 (Python, Psycopg2)이 성공적으로 생성되었는지 어떻게 알 수 있습니까?
"1 행이 영향을 받았습니다."와 같은 회신을 보내고 싶습니다.
나는 어떤 종류의 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'
이 오래된 질문이지만, 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
이다.
비슷한 속성은 실제로'statusmessage'입니다. 문서는 [here] (http://initd.org/psycopg/docs/cursor.html)에 있습니다. –
for 루프를 사용할 수 있습니다. 영향을 받았는지 확인하는 것이 좋습니다. – Bry6n