如何将sqlite数据库复制到内存?

时间:2019-06-27 17:10:46

标签: java sqlite

我想使用JAVA代码将SQLite数据库中的“ .db”文件复制到内存中。我该怎么办?

1 个答案:

答案 0 :(得分:1)

您可以做的是:-

  1. 打开一个内存数据库并附加要复制的数据库。

  2. 创建表并复制每个表的数据(您可以从 sqlite_master (名称,类型和表列)确定表和其他实体名称)

    1. 您可以使用CREATE TABLE x AS SELECT * FROM attached_database_identifier.x 根据[SQLite理解的SQL-CREATE TABLE-CREATE TABLE ... AS SELECT语句]指出限制https://www.sqlite.org/lang_createtable.html#rowid
    2. 上面是表名称 x
    3. 或者,您可以基于存储在 sql 列中的 sqlite_master 中的 SQL 创建表。
  3. 创建其他实体的索引,视图和触发器(同样, sqlite_master sql 列将保存用于创建实体的SQL)。

    1. 然后将相应地建立索引。
    2. 然后触发将起作用(您不希望在从原始表复制数据之前创建它们,因为触发器将完成它们的工作)。
    3. 视图在使用时从表中提取结果数据。
  4. 分离附加的数据库。
  5. 您现在拥有内存中副本。