其中的适当的用途为sqlite3的是"内存数据库".这听起来像是一个非常有用的C++应用程序工具.有没有人有一个如何在C或C++中完成这个的例子?我特意寻找一种规范的方法来将几个平面文件粘贴到内存数据库中,然后进行一些连接.
这实际上非常简单.在使用C/C++ API打开数据库时,只需指定':memory:'作为数据库文件名.这是引擎识别的特殊常量.这实际上适用于其他语言,如Python或Ruby,因为它们通常只包装C/C++ API.有关完整的详细信息,请参见http://sqlite.org/c3ref/open.html.
只需打开文件:memory:并且应该这样做(至少它在PHP中).
您提到要读取多个平面文件并对它们进行连接.如果可以将平面文件存储为SQLite数据库,则可以通过将一个文件附加到另一个来直接使用它们:
ATTACH foo.db AS foo
然后像foo那样参考foo中的表:
SELECT * FROM foo.users
这样,您可以在不需要创建内存数据库的情况下进行连接.
如果您希望SQLite不使用临时文件作为日志,例如,除了手动请求连接,断开连接,附加或分离之外,您不需要任何文件活动.然后在连接到":memory:"数据库后,在运行时使用以下两个pragma.
PRAGMA temp_store=MEMORY; PRAGMA journal_mode=MEMORY;
来自文档.