我正在努力充分利用aws服务器并且有想法在多个线程中使用内存数据库(在python中使用SQLite 3)我在网上找到了这个命令:
conn = sqlite3.connect('file::memory:?cache=shared')
然后我得到了这个模糊的错误:
sqlite3.OperationalError: unable to open database file
甚至可以再这样做了吗?
答案 0 :(得分:0)
在Python 3.4+和SQLite 3.7.13+中,您可以使用以下方法:
sqlite3.connect("file:memory?cache=shared&mode=memory", uri=True)
答案 1 :(得分:-1)
仍然可以 。我刚刚对Python 3.6.0
上的Python 2.7.13
和MacOS
进行了验证。
sqlite3.connect("file::memory:?cache=shared")
确实是连接数据库的正确方法。
import sqlite3
p = sqlite3.connect("file::memory:?cache=shared")
p.execute('CREATE TABLE foo (bar, baz)')
p.execute("INSERT INTO foo VALUES ('apple', 'orange')")
p.commit()
和另一个python shell
import sqlite3
q = sqlite3.connect("file::memory:?cache=shared")
list(q.execute('SELECT * FROM foo'))
我的输出是[(u'apple', u'orange')]
你回答你的问题"甚至可以再这样做了吗?",答案是是。所以问题在于你的系统,因为你确认它适用于aws(在下面的评论中)。