Ale*_*x B 11
使用特殊文件名, :memory:
sqlite3_open(":memory:", &db);
Run Code Online (Sandbox Code Playgroud)
libsqlite必须在没有 SQLITE_OMIT_MEMORYDB定义的情况下编译,如SQLite文档中所指出:
SQLITE_OMIT_MEMORYDB定义此选项后,库不会考虑特殊数据库名称
":memory:"(通常用于创建内存数据库).如果":memory:"传递给sqlite3_open(),,sqlite3_open16()或sqlite3_open_v2()将打开或创建具有此名称的文件.
但是,如果要读取已经完全加载到内存中的数据库,那将会更有效.您必须实现一个自定义VFS层来操作内存文件并将其注册到您的SQLite上下文中.
看到:
我自己没有实现它,所以我无法可靠地判断你是否必须实现整个新的VFS层,或者你可以在默认的一个函数中替换一些函数(后者不太可能).