我试图了解这段代码在幕后做了什么:
import psycopg2
c = psycopg2.connect('db=some_db user=me').cursor()
c.execute('select * from some_table')
for row in c:
pass
根据PEP 249,我的理解是,这是重复调用Cursor.next()
,相当于调用Cursor.fetchone()
。但是,psycopg2
文档说以下内容:
当执行数据库查询时,Psycopg 游标通常会获取后端返回的所有记录,并将它们传输到客户端进程。
所以我很困惑——当我运行上面的代码时,它是将结果存储在服务器上并一个一个地获取它们,还是一次把所有的东西都带过来?