使用内存数据库更新永久数据库

时间:2011-12-05 02:12:15

标签: sqlite

如何通过小型内存数据库更新大型永久数据库?我有一个应用程序,它有一个很大的永久数据库(在硬盘上)和小内存数据库(在RAM中)。在我的应用程序内存数据库的运行时填充,并在运行结束时更新永久数据库。

有谁知道我该怎么做?

1 个答案:

答案 0 :(得分:4)

您可以使用ATTACH DATABASE实现此目的:

http://www.sqlite.org/lang_attach.html

编辑05.12.2011:

这里我创建了一个磁盘数据库:

[someone@localhost ~]$ sqlite3 some_big_db
SQLite version 3.7.5
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> create table t1 (a int, b text);

在这里,我打开一个内存数据库,创建一个表,填充它,附加磁盘数据库,并将内存数据库表的内容复制到磁盘数据库表中:

[someone@localhost ~]$ sqlite3 
SQLite version 3.7.5
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> create table t2 (a int, b text);
sqlite> insert into t2 values (1, 'aa');
sqlite> insert into t2 values (2, 'bb');
sqlite> attach database some_big_db as big_db;
sqlite> insert into t1 select * from t2;

在这里,我打开磁盘数据库并选择其表的内容:

[someone@localhost ~]$ sqlite3 some_big_db 
SQLite version 3.7.5
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> select * from t1;
1|aa
2|bb