2010-12-03 2 views
3

Допустим, я следующий кодразница между зацикливание курсор и зацикливание cursor.fetchall в строке запросов

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

после этого момента я хочу цикла по всем результирующем.

чем разница между

for row in cursor: 
    print row[0] 


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

I 

утра догадываясь, что первый один использует fetchone метод.

1) Сначала выполняется запрос на каждой итерации. 2) использует ли он метод fetchone или метод fetchall 3), который лучше подходит для больших результатов?

ответ

2

Возможность перебора курсора является необязательным расширением, как определено PEP 249, а точная семантика зависит от используемого адаптера базы данных.

+0

Я проверил это с помощью debugsqlshell и похоже, что он запускает запрос в методе cursor.execute. (попробовал это на postgresql) – yilmazhuseyin 2010-12-03 08:20:24

Смежные вопросы