如何创建sqlite3内存数据库?

时间:2008-11-20 05:16:51

标签: c++ c database sqlite in-memory-database

appropriate usessqlite3之一是“内存数据库”。这听起来像是一个非常有用的C ++应用程序工具。有没有人有一个如何在C或C ++中完成这个的例子?我特意寻找一种规范的方法,将几个平面文件粘贴到内存数据库中,然后进行一些连接。

3 个答案:

答案 0 :(得分:16)

实际上很容易。在使用C / C ++ API打开数据库时,只需指定':memory:'作为数据库文件名。这是引擎识别的特殊常量。这实际上适用于其他语言,如Python或Ruby,因为它们通常只包装C / C ++ API。有关详细信息,请参阅http://sqlite.org/c3ref/open.html

答案 1 :(得分:5)

只需打开文件:memory:并且应该这样做(至少在PHP中)。

你提到你想要阅读几个平面文件并对它们进行连接。如果可以将平面文件存储为SQLite数据库,则可以通过将一个文件附加到另一个来直接使用它们:

ATTACH foo.db AS foo

然后像foo那样参考foo中的表:

SELECT * FROM foo.users

这样您就可以在不需要创建内存数据库的情况下进行连接。

答案 2 :(得分:5)

如果您希望SQLite不使用临时文件作为日志,例如,除了手动请求连接,断开连接,附加或分离之外,您不需要任何文件活动。然后在连接到“:memory:”数据库后,在运行时使用以下两个pragma。

PRAGMA temp_store=MEMORY;
PRAGMA journal_mode=MEMORY;

来自docs.