如何通过小型内存数据库更新大型永久数据库?我有一个应用程序,它有一个很大的永久数据库(在硬盘上)和小内存数据库(在RAM中)。在我的应用程序内存数据库的运行时填充,并在运行结束时更新永久数据库。
有谁知道我该怎么做?
答案 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