用于循环更新的python sqlite3

用于循环更新的python sqlite3,python,Python,我试图在多次迭代中更新。但是,一旦数据库进行第一次更新,脚本就会中断循环。如何解决这个问题?谢谢 在循环之前使用data=data.fetchall()。否则,当您尝试在结果集上循环时,您会在循环内部循环光标(重置其结果集) 使用.fetchall()返回结果列表,以便在重新使用光标之前将结果存储在本地 或者,如果您不想在本地缓存第一个查询的结果,请创建一个单独的游标用于update语句。“但是,一旦数据库进行第一次更新,脚本就会中断循环。”您确定您的代码甚至进行了一次更新吗?语法错误。这种操作

我试图在多次迭代中更新。但是,一旦数据库进行第一次更新,脚本就会中断循环。如何解决这个问题?谢谢

在循环之前使用
data=data.fetchall()
。否则,当您尝试在结果集上循环时,您会在循环内部循环光标(重置其结果集)

使用
.fetchall()
返回结果列表,以便在重新使用光标之前将结果存储在本地


或者,如果您不想在本地缓存第一个查询的结果,请创建一个单独的游标用于update语句。

“但是,一旦数据库进行第一次更新,脚本就会中断循环。”您确定您的代码甚至进行了一次更新吗?语法错误。这种操作不是惯用的sql。很可能您可以将其重写为一条语句,无for循环,以获得更好的性能。你能告诉我们更多关于你正在做的查询,我们可以给你一个更好的答案。
import sqlite3    
conn = sqlite3.connect('sample.db')    
cursor = conn.cursor()    
data = cursor.execute('''SELECT * From Table''')

for i in data:    
    title = i[0]        
    status = i[1]    
    cursor.execute('''UPDATED Table SET status=? WHERE title=?''', (status, title))

cursor.close()    
conn.commit()