fetchone - python cursor
Sobre mysql cursor e iterador (1)
La clase de cursor MySQLdb
implementa el protocolo iterador , por lo que simplemente puede hacer esto:
cursor.execute(sql)
for row in cursor:
print row
...
Código relevante de MySQLdb.cursors.BaseCursor :
def __iter__(self):
return iter(self.fetchone, None)
Imagina que tengo un cursor mysql y datos leídos. La cantidad de datos puede ser muy grande con la que quiero tratar una línea cada vez.
Una manera fácil y directa podría ser así:
while True:
row = cursor.fetchone()
if not row: break
.....
pero esto no se ve bien, así que me pregunto si esta manera funciona como se imagina:
for row in iter(cursor.fetchall())
Lo que quiero saber es: si utilizo el modo iter(cursor.fetchall())
, ¿recupera primero todos los datos o solo recupera una fila a la vez?
Cualquier idea es apreciada.
Gracias