【发布时间】:2021-05-26 19:13:44
【问题描述】:
我在 PostgreSQL 中使用带有 psycopg2 的服务器端游标,基于 this well-explained answer。
with conn.cursor(name='name_of_cursor') as cursor:
query = "SELECT * FROM tbl FOR UPDATE"
cursor.execute(query)
for row in cursor:
# process row
在处理每一行时,我想使用 PostgreSQL 的 UPDATE tbl SET ... WHERE CURRENT OF name_of_cursor (docs) 更新行中的一些字段,但似乎当进入 for 循环并设置了 row 时,位置服务器端游标在不同的记录中,所以当我可以运行命令时,错误的记录被更新了。
如何确保结果迭代器与光标位于同一位置? (也最好以一种不会使循环比使用 ID 更新更慢的方式)
【问题讨论】:
标签: python postgresql psycopg2