2010-12-03 3 views
3

이의 내가 모든 결과 집합을 통해 내가 루프를 원하는 시점 이후 코드를차이는

cursor = connection.cursor() 
cursor.execute(query) 

을 다음 있다고 가정 해 봅시다 쿼리합니다. 제 대하여 fetchone 한 방법을 사용하는 것으로 추측

for row in cursor: 
    print row[0] 


for row in cursor.fetchall(): 
    print row[0] 

I 

오전 차이가 무엇

.

1) 모든 반복에서 첫 번째 쿼리가 실행됩니까? 2) fetchone 메서드 또는 fetchall 메서드를 사용합니까 3) 큰 결과 집합에 더 좋습니다?

답변

2

커서를 통해 반복 할 수있는 기능은 PEP 249에 정의 된 선택적 확장이며 정확한 의미는 사용중인 데이터베이스 어댑터에 따라 다릅니다.

+0

debugsqlshell을 사용하여 이것을 확인했으며 cursor.execute 메소드에서 쿼리를 실행하는 것처럼 보입니다. (postgresql에서 시도) – yilmazhuseyin