psycopg2。更改光标工厂以进行单个查询

发布于 2025-01-18 18:51:46 字数 226 浏览 1 评论 0原文

我使用 RealDictRow 光标作为默认光标。但对于某些特定查询,常规(元组)游标更方便。 psycopg2 是否允许在单个查询期间替换游标?

使用示例:

cursor.execute('SELECT id FROM posts', cursor_factory=None)
# Not working, unexpected argument

I'm using RealDictRow cursor as default cursor. But For some specific queries regular (tuple) cursor is more handy. Is psycopg2 allows to replace cursor during a single query?

Usage example:

cursor.execute('SELECT id FROM posts', cursor_factory=None)
# Not working, unexpected argument

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

请你别敷衍 2025-01-25 18:51:46

您无法更改现有游标的类型,但可以在声明新游标时覆盖连接的 cursor_factory

>>> # Declare a connection that produces DictCursors by default. 
>>> conn = psycopg2.connect(dbname='test', cursor_factory=psycopg2.extras.DictCursor)
>>> cur1 = conn.cursor()
>>> type(cur1)
<class 'psycopg2.extras.DictCursor'>
>>>
>>> # Create a standard cursor by overriding cursor_factory.
>>> cur2 = conn.cursor(cursor_factory=psycopg2.extensions.cursor)
>>> type(cur2)
<class 'psycopg2.extensions.cursor'>

You can't change the type of an existing cursor, but you can override the connection's cursor_factory when declaring a new cursor:

>>> # Declare a connection that produces DictCursors by default. 
>>> conn = psycopg2.connect(dbname='test', cursor_factory=psycopg2.extras.DictCursor)
>>> cur1 = conn.cursor()
>>> type(cur1)
<class 'psycopg2.extras.DictCursor'>
>>>
>>> # Create a standard cursor by overriding cursor_factory.
>>> cur2 = conn.cursor(cursor_factory=psycopg2.extensions.cursor)
>>> type(cur2)
<class 'psycopg2.extensions.cursor'>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文