在python中创建带有数据库名称的内存中sqlite数据库
问题描述:
我想在python中创建多个带有名称的内存中sqlite数据库。在python中创建带有数据库名称的内存中sqlite数据库
在sqlite的命令行有可能这样做与此语法:
':memory:' AS database_name
但是在Python conenction字符串中使用它的时候是这样的:
con = sqlite3.connect("':memory:' AS database_name")
出现错误。
我的问题是我们如何在内存数据库中创建多个名称用于访问它们。
我们如何在python中做到这一点?
答
AS子句仅适用于ATTACH statement,但不适用于主数据库(始终命名为main
)。
而数据库的标识来自它的文件名,所以更改数据库名称将无济于事。
要使用的内存数据库自定义“文件”的名称,使用URI file name与mode
参数:
conn = sqlite3.connect("file:blah?mode=memory", uri=True)
但对另一个内存数据库自定义数据库名称连接到同连接,只需执行ATTACH正常:
conn.execute("ATTACH ':memory:' AS db2")
你会告诉我一个我需要的例子吗? –