【发布时间】:2017-01-23 00:34:06
【问题描述】:
我试图了解这段代码在幕后做了什么:
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 文档 say the following:
执行数据库查询时,Psycopg 游标通常会获取 后端返回的所有记录,传输到 客户端进程。
所以我很困惑——当我运行上面的代码时,它是将结果存储在服务器上并一个一个地获取它们,还是一次将所有东西都带过来?
【问题讨论】:
标签: python postgresql psycopg2 python-db-api