gpt4 book ai didi

python - 使用多个连接访问 sqlite 数据库

转载 作者:太空宇宙 更新时间:2023-11-04 06:55:37 24 4
gpt4 key购买 nike

我想从多个实例访问同一个 SQLite 数据库。

我在两个 Python shell 中进行了尝试,但在显示另一个连接上的新条目时并没有得到真正一致的结果。这真的有效还是只是侥幸(或我的误解)?

我使用了以下代码片段:

>>> import sqlite3
>>> conn = sqlite3.connect("test.db")
>>> conn.cursor().execute("SELECT * from foo").fetchall()
>>> conn.execute("INSERT INTO foo VALUES (1, 2)")

当然,我并不总是添加新条目。

最佳答案

这不是侥幸,只是对连接处理方式的误解。来自docs :

When a database is accessed by multiple connections, and one of the processes modifies the database, the SQLite database is locked until that transaction is committed. The timeout parameter specifies how long the connection should wait for the lock to go away until raising an exception. The default for the timeout parameter is 5.0 (five seconds).

为了查看其他连接上的更改,您必须 commit() execute() 命令的变化。同样,来自文档:

If you don’t call this method, anything you did since the last call to commit() is not visible from other database connections. If you wonder why you don’t see the data you’ve written to the database, please check you didn’t forget to call this method.

关于python - 使用多个连接访问 sqlite 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22636625/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com