【发布时间】:2023-04-07 09:34:01
【问题描述】:
为了查看SQLite是否可以被2个进程同时使用,我尝试了这个:
script1.py(每 1 秒更新一次数据库)
import sqlite3, time
conn = sqlite3.connect('test.db')
conn.execute("CREATE TABLE IF NOT EXISTS kv (key text, value text)")
for i in range(1000):
conn.execute('REPLACE INTO kv (key, value) VALUES (?,?)', (1, i))
conn.commit()
print i
time.sleep(1)
script2.py(每 1 秒查询一次数据库)
import sqlite3, time
conn = sqlite3.connect('test.db')
c = conn.cursor()
while True:
c.execute('SELECT value FROM kv WHERE key = ?', (1,))
item = c.fetchone()
print item
time.sleep(1)
我启动了script1.py,然后是script2.py,让它们同时运行。我希望script2.py 会知道(我不知道怎么做!)数据库已更新,并且它必须重新加载其中的一部分。但可悲的是,我在script2.py 中得到了这个:
(u'0',)
(u'0',)
(u'0',)
(u'0',)
(u'0',)
(u'0',)
(u'0',)
即它没有收到script1.py 的更新。
有没有一种简单的方法可以使用 SQLite 进行这项工作?
【问题讨论】: