为什么在此简单的python sqlite3更新查询代码上出现“数据库已锁定”错误?

时间:2019-03-20 02:39:31

标签: python sqlite

我所做的每个SQLITE查询通常都可以正常运行,只是我似乎无法更新数据库。

db = sqlite3.connect("data.db")
cursor = db.cursor()
str_datetime = str(datetime.datetime.now())
cursor.execute("""UPDATE ads SET publish_end_datetime = ? WHERE ad_code = ?""", (str_datetime, 1411671200))
db.commit() # is this commit statement even necessary?
db.close()

我收到以下操作错误:

  

OperationalError跟踪(最近的呼叫   最后)在()         3 str_datetime = str(datetime.datetime.now())         4   ----> 5 cursor.execute(“”“” UPDATE ads SET publish_end_datetime =?WHERE ad_code =“”“”,(str_datetime,1411671200))         6 db.commit()         7 db.close()

     

OperationalError:数据库已锁定

1 个答案:

答案 0 :(得分:0)

我想我已经找到问题了。 每当使用DB时,都会在同一位置创建一个database.db-journal文件。这是数据库正在使用的主要指标。 我还没有发现“使用”数据库的原因,但是我已经找到了解决问题的方法。看来OneDrive可能是问题所在。我将data.db复制到了OneDrive之上的桌面上,终于可以使更新语句起作用。

我希望它可以帮助其他人。