代码之家  ›  专栏  ›  技术社区  ›  David Nehme

如何在内存中创建sqllite3数据库?

  •  11
  • David Nehme  · 技术社区  · 17 年前

    之一 appropriate uses sqlite3 是“内存数据库”。这听起来对我的C++应用程序来说是一个非常有用的工具。有人举个例子说明如何在C或C++中实现这一点吗?我专门在寻找一种规范的方法,将几个平面文件存入内存数据库,然后进行一些连接。

    3 回复  |  直到 16 年前
        1
  •  16
  •   Kamil Kisiel    17 年前

    这其实很容易。使用C/C++API打开数据库时,只需指定“:memory:”作为数据库文件名。这是一个发动机会识别的特殊常数。其他语言(如Python或Ruby)实际上也是如此,因为它们通常只包装C/C++API。看见 http://sqlite.org/c3ref/open.html 了解完整细节。

        2
  •  5
  •   Kyle Cronin    17 年前

    只需打开文件:memory:就可以了(至少在PHP中是这样)。

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

    ATTACH foo.db AS foo
    

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

    SELECT * FROM foo.users
    

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

        3
  •  5
  •   Danielb    17 年前

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

    PRAGMA temp_store=MEMORY;
    PRAGMA journal_mode=MEMORY;
    

    docs.