我想创建多个内存中的sqlite数据库,其名称为python。
在sqlite命令行中,可以使用以下语法执行此操作:
':memory:' AS database_name
但在python conenction字符串中使用它时:
con = sqlite3.connect("':memory:' AS database_name")
得到错误。
我的问题是我们如何在内存数据库中创建多个带有访问它们的名称。
我们如何在python中做到这一点?
答案 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")