簡體   English   中英

python sqlite3進行循環更新

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM