0
我有一個問題,我突然收到很多SQLite3操作錯誤 - 我的數據庫被鎖定。我認爲這是因爲我在程序中打開了很多次數據庫。那麼,我如何確保這不會發生?如何正確關閉連接到SQLite數據庫?
def getID(databasepath):
con = lite.connect(databasepath)
with con:
cur = con.execute("SELECT userid, name from Table")
con.commit()
rows = [[x[0], x[1]] for x in cur]
con.close()
return rows
def findIDsomewhereElse(databasepath):
con = lite.connect(databasepath)
with con:
cur = con.execute("SELECT userid FROM table2")
con.commit()
all_rows = cur.fetchall()
all_rows = sorted(all_rows, key=itemgetter(0), reverse=True)
con.close()
return all_rows
主營:
id = getId('firstpath')
userid = id[0]
con = lite.connect('secondpath')
with con:
cur = con.execute("SELECT max(time) FROM enteringSing WHERE userid = {userid}".format(userid = userid))
con.commit()
con.close()
newfind = findIDsomewhereElse('secondpath')
con = lite.connect('secondpath')
with con:
con.executemany("INSERT INTO table4(columns) VALUES(?)", allrows)
con.commit()
con.close()
所以我連接到數據庫相當頻繁,是什麼問題?我意識到我可能應該把方法之外的con lite連接?但是再次,我總共使用了兩個數據庫。