我遇到一个问题,我突然得到很多SQLite3操作错误 - 我的数据库被锁定了。我认为这是因为我在我的程序中打开了很多次数据库。那么,我该如何确保这不会发生?
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连接到方法之外?但话说回来,我总共使用了两个数据库。
答案 0 :(得分:0)
对我来说,似乎通过终端和python file.py开始运行python文件,而不是在sublimetext2中只需要ctrl + B.