在python中使用数据库名创建内存中的sqlite数据库

时间:2017-08-02 11:24:23

标签: python sqlite connection-string in-memory-database

我想创建多个内存中的sqlite数据库,其名称为python。

在sqlite命令行中,可以使用以下语法执行此操作:

':memory:' AS database_name

但在python conenction字符串中使用它时:

con = sqlite3.connect("':memory:' AS database_name")

得到错误。

我的问题是我们如何在内存数据库中创建多个带有访问它们的名称。

我们如何在python中做到这一点?

1 个答案:

答案 0 :(得分:2)

AS子句仅适用于ATTACH statement,但不适用于主数据库(始终命名为main)。

数据库的标识来自其文件名,因此无论如何更改数据库名称都无济于事。

使用自定义"文件"内存数据库的名称,使用带有mode参数的URI file name

conn = sqlite3.connect("file:blah?mode=memory", uri=True)

但要将具有自定义数据库名称的另一个内存数据库附加到同一连接,只需正常执行ATTACH:

conn.execute("ATTACH ':memory:' AS db2")