2012-03-26 5 views
1

저는 파이썬에서 초보자입니다. 이 코드를 사용하여 SQL 명령을 실행합니다.psycopg를 사용한 prepared statements

cur.execute("INSERT INTO test (num, data) VALUES (%s, %s)", (100, "abcdef")) 

나는이 준비된 성명서입니까 아니면 고객 측 인용구입니까?

+0

여기를 참조하십시오 : http://stackoverflow.com/questions/6775497/psycopg-get- 형식화 된 SQL 대신 실행 – socketpair

답변

10

아니요, 적어도 psycopg2에는 해당되지 않습니다. 문서의 "준비"는 준비된 진술과 완전히 다른 "준비 트랜잭션"을 나타냅니다.

그러나 메서드를 재정의하거나 추가 문을 실행하여 준비된 문을 에뮬레이트 할 수 있습니다. 참조 : An example of psycopg2 cursor supporting prepared statements

를 참조하십시오 relevant blog entry for psycopg.

더 많은 정보 :

http://www.postgresql.org/docs/9.2/static/sql-prepare.html
http://www.postgresql.org/docs/current/static/sql-prepare-transaction.html

-2

the docs에 따르면 실행 방법은 "데이터베이스 작업 준비 또는 실행 (쿼리 또는 명령)"입니다. 그렇습니다. 그것은 준비된 진술입니다.

+8

실제로 현재 않습니다. 이 문서의 "준비"는 사전 컴파일 된 SQL 문이 아닌 2 단계 커밋에 필요한 "PREPARE TRANSACTION"호출을 참조합니다. – Brian