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()
我正在尝试更新多次迭代。但是,一旦数据库进行第一次更新,脚本就会跳出循环。如何解决这个问题?谢谢!
答案 0 :(得分:6)
在循环之前使用data = data.fetchall()
。否则,当您尝试循环遍历该结果集时,最终会将光标循环回到循环内部(重置其结果集)。
使用.fetchall()
返回结果列表,以便在重新使用游标之前将它们存储在本地。
或者,如果您不想在本地缓存第一个查询的结果,请创建一个单独的游标以用于更新语句。