在内存中SQLite3共享数据库python

时间:2017-05-20 19:40:52

标签: python database amazon-web-services sqlite

我正在努力充分利用aws服务器并且有想法在多个线程中使用内存数据库(在python中使用SQLite 3)我在网上找到了这个命令:

    conn = sqlite3.connect('file::memory:?cache=shared')

然后我得到了这个模糊的错误:

    sqlite3.OperationalError: unable to open database file

甚至可以再这样做了吗?

2 个答案:

答案 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.13MacOS进行了验证。

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(在下面的评论中)。