我正在尝试实现一个服务器端游标,以便在从数据库获取大量数据时“绕过”Django ORM的弱点。 但我不明白命名游标应该如何定义,因为我的当前代码似乎无法正常工作。我是这样定义游标的:
id = 'cursor%s' % uuid4().hex
connection = psycopg2.connect('my connection string here')
cursor = connection.cursor(id, cursor_factory=psycopg2.extras.RealDictCursor)
光标似乎可以工作,因为它可以被迭代并返回预期的记录作为Python字典,但是当我尝试关闭它(cursor.close()
)时,我会遇到异常:
psycopg2 OperationalError: cursor *the generated cursor id* does not exist
这TM是什么?那我用来从数据库中检索信息的对象是什么? 如果我定义的游标在我的数据库中找不到,那么psycopg2是否使用回退默认(未命名)游标(如果是这样...我的大问题是:在使用psycopg2之前必须在db级别定义一个游标吗?)我很困惑,你能帮帮我吗?