python - 为什么在这个简单的 python sqlite3 更新查询代码上出现“数据库已锁定”错误?
问题描述
我所做的每个 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 Traceback (last last call last) in () 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:数据库已锁定
解决方案
我想我找到了问题所在。每当使用 DB 时,都会在同一位置创建一个 database.db-journal 文件。这是数据库正在使用的主要指标。我还没有找到什么在“使用”我的数据库,但我已经找到了解决问题的方法。看来 OneDrive 可能是问题所在。我在桌面上复制了我的 data.db,在 OneDrive 之外,我终于能够让更新语句正常工作。
我希望它可以帮助其他人。
推荐阅读
- python - 为什么代码工作时 VS Code 会显示错误?
- angular - VS Code 中的 Angular 调试和单步调试
- arrays - How to store values from a service to an array in Angular?
- python - 从 BertForSequenceClassification 中提取特征
- python - How to know changes in color with selenium (python)
- ios - 为什么我的 UITableDelegate 方法没有被调用?
- html - Eyebeam 软电话无法使用从 html 页面提供的正确号码拨打电话,然后在 href 标记中添加 sip 值
- jquery - 我应该手动添加jquery吗?jquery 未在 localhost 中全新安装的 wordpress 中定义
- ios - Xamarin iOS BLE 4.0。写入特性抛出 CBATTErrorDomain Code=1
- java - 如何在 intellij (Gradle) 中启用部分构建?