繁体   English   中英

如何创建sqllite3内存数据库?

[英]How do I create a sqllite3 in-memory database?

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;

来自文档。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM