:memory:
是否可以使用 C API附加命名的 SQLite3数据库?当然有sqlite3_open
,但是如何设置要在查询中使用的名称?另外,我可以通过执行ATTACH DATABASE
语句来附加它,但是我如何获取它的 DB 指针呢?
背景:
我正在使用虚拟表来驱动 SQLite 接口到一组外部文件。我使用 SQLite 主要是为了访问体面的 SQL 查询和现有的驱动程序,例如 Python。我已经定义了一个函数open_myfiles
,它当前根据给定目录中的文件创建所有虚拟表。应用程序只需要执行此操作SELECT open_myfiles('/path/to/tables')
,并且使用正确的虚拟表填充数据库。
但是,我正在尝试改进。目前,虚拟表是持久化到当前数据库的,很难加载多个目录。我认为更好的方法是将每个目录附加为一个单独的命名 :memory:
数据库。