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

Ham*_*ago 2 python sqlite connection-string in-memory-database

我想创建多个内存中的 sqlite 数据库,并用 python 命名。

在 sqlite 命令行中,可以使用以下语法来做到这一点:

':memory:' AS database_name
Run Code Online (Sandbox Code Playgroud)

但是当在 python 连接字符串中使用它时,如下所示:

con = sqlite3.connect("':memory:' AS database_name")
Run Code Online (Sandbox Code Playgroud)

得到错误。

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

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

CL.*_*CL. 6

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

而且数据库的标识来自于它的文件名,因此更改数据库名称无论如何都没有帮助。

要为内存数据库使用自定义“文件”名称,请使用带有参数的URI 文件名mode

conn = sqlite3.connect("file:blah?mode=memory", uri=True)
Run Code Online (Sandbox Code Playgroud)

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

conn.execute("ATTACH ':memory:' AS db2")
Run Code Online (Sandbox Code Playgroud)