sqlite3.OperationalError:数据库已锁定

发布于 2024-10-28 20:11:04 字数 452 浏览 3 评论 0原文

我正在尝试将列表的所有值插入到我的 sqlite3 数据库中。当我使用 python 交互式解释器模拟此查询时,我能够将单个值正确插入到数据库中。但是我的代码在使用迭代时失败:

...
connection=lite.connect(db_name)
cursor=connection.cursor()
for name in match:
         cursor.execute("""INSERT INTO video_dizi(name) VALUES (?)""",(name,))
connection.commit()
...

error:cursor.execute("""INSERT INTO video_dizi(name) VALUES (?)""",(name,))
sqlite3.OperationalError: database is locked

有什么方法可以克服这个问题?

I'm trying to insert all values of a list to my sqlite3 database. When I simulate this query by using the python interactive interpreter, I am able to insert the single value to DB properly. But my code fails while using an iteration:

...
connection=lite.connect(db_name)
cursor=connection.cursor()
for name in match:
         cursor.execute("""INSERT INTO video_dizi(name) VALUES (?)""",(name,))
connection.commit()
...

error:cursor.execute("""INSERT INTO video_dizi(name) VALUES (?)""",(name,))
sqlite3.OperationalError: database is locked

Any way to overcome this problem?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

森末i 2024-11-04 20:11:04

当您尝试提交失败的操作时,代码中的其他位置是否有另一个连接用于启动仍处于活动状态(未提交)的事务?

Do you have another connection elsewhere in your code that you use to begin a transaction that is still active (not committed) when you try to commit the operation that fails?

寂寞花火° 2024-11-04 20:11:04

由于您已在 DBbrowser 类型应用程序中打开 site.db 或数据库文件以在交互式数据库界面中查看,因此可能会发生此错误。只要关闭它就可以正常工作。

As this error can happen because you have opened your site.db or database file in DBbrowser type application to view in interactive database interface. Just close that it will work fine.

二智少女猫性小仙女 2024-11-04 20:11:04

因为您的数据库被另一个进程或连接使用。如果您需要真正的并发性,请使用真正的 RDBMS。

Because your database is use by another process or connection. If you need real concurrency, use a real RDBMS.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文