[英]python sqlite3 for loop update
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()
我正在嘗試更新多個迭代。 但是,一旦數據庫進行第一次更新,該腳本就會脫離循環。 如何解決這個問題? 謝謝!
在循環之前使用data = data.fetchall()
。 否則,當您試圖循環遍歷該結果集時,您最終會在循環內回收游標(重置其結果集)。
使用.fetchall()
返回結果列表,以便在重新使用游標之前將它們存儲在本地。
另外,如果您不想在本地緩存第一個查詢的結果,請創建一個單獨的游標用於更新語句。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.