Mysql
 sql >> Database >  >> RDS >> Mysql

Connettore MySQL Python - risultato non letto trovato quando si utilizza fetchone

Tutto ciò che era richiesto era per buffered essere impostato su true!

cursor = cnx.cursor(buffered=True)

Il motivo è che senza un cursore memorizzato nel buffer, i risultati vengono caricati "pigramente", il che significa che "fetchone" in realtà recupera solo una riga dal set di risultati completo della query. Quando utilizzerai di nuovo lo stesso cursore, si lamenterà che hai ancora n-1 risultati (dove n è l'importo del set di risultati) in attesa di essere recuperati. Tuttavia, quando usi un cursore con buffer, il connettore recupera TUTTE le righe dietro le quinte e ne prendi solo una dal connettore in modo che mysql db non si lamenti.