【问题标题】:Cannot execute UPDATE statement on SQLite DB: database is locked [duplicate]无法在 SQLite DB 上执行 UPDATE 语句:数据库已锁定 [重复]
【发布时间】:2020-01-09 12:03:54
【问题描述】:

我无法在部署到 Azure 应用服务 (Linux) 的 Flask 应用中执行 UPDATE 语句。它说:

Database is Locked.

SELECT 语句按预期执行。在本地机器上按预期工作 UPDATE 语句。

我已尝试更改隔离级别(DEFERREDEXCLUSIVEIMMEDIATE)。我也尝试在数据文件夹上CHMOD,但看起来不错。

with sql.connect(connstring) as con:
cur = con.cursor()
cur.execute("Update INNOVATIONPOWER_MESSAGES SET innovative = 0 WHERE id = 21187")
con.commit()

【问题讨论】:

  • 你是否缺少缩进..?

标签: python sqlite azure flask azure-web-app-service


【解决方案1】:

检查其他类似问题 (OperationalError: database is locked),用户的普遍反应似乎是他们的错误代码没有正确关闭会话。大容量应用程序最终会超出 SQLite 的并发能力,但如果您怀疑您的应用程序不是这种情况,请尝试仔细检查您的代码,以防它无法正确处理(关闭)会话。

重写代码以减少并发并确保数据库 交易是短暂的。

【讨论】:

  • 我已经重新启动了应用服务,并确保这是数据库的第一条 SQL 语句。事件结果是“数据库被锁定”。
猜你喜欢
  • 2022-07-21
  • 2022-01-22
  • 2020-01-07
  • 1970-01-01
  • 1970-01-01
  • 2015-05-10
  • 2012-09-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多