1

是否可以从 Android 中的多个数据库中获取数据SQLite?例如:SELECT * FROM db1.tableA A, db2.tableB B WHERE A.id=B.id;

SQLiteOpenHelper请帮忙,我在和SQLiteDatabase类中找不到任何相关的。谢谢

如果不可能。将大量记录插入数据库是否有任何快速方法?我有一个包含 3000 条记录的 XML 文件。插入它大约需要 3 到 4 分钟(这就是我将数据放入 db2 的方式)。

4

3 回答 3

11

您可以像这样附加另一个 SQLite DB:

db.execSQL("attach database ? as userdb", new String[]{"/data/data/com.mycompany.myapp/databases/user.db"});

然后使用“userdb.table”从您的主数据库访问它。

https://groups.google.com/forum/?fromgroups#!topic/android-developers/u3WYg-0FHZ0

于 2012-07-29T19:26:04.827 回答
3

很可能为单个 Android 应用程序使用多个数据库。有关类似问题,请参见此处。

如果您想避免使用我建议的多个数据库,那么有很多问题可以解决加快数据库访问时间的问题。我会看看这些资源:

在 sqlite3 数据库中插入 1000000 行 链接到: http ://tech.vg.no/2011/04/04/speeding-up-sqlite-insert-operations/

基本上,使用围绕整个插入语句的数据库事务(如上所述)。这通过为每个插入创建单独的事务来减少开销。

于 2012-05-29T15:00:14.943 回答
2

一次查询可以同时查询两个不同的数据库,但您必须先使用 ATTACH 将它们放在一起。

SQLite ATTACH 关键字的文档在这里

这里有一个很好的示例,虽然它不在 java/android 代码中,但它显示了您完成所有操作所需的 SQL 命令。

此页面也涵盖了它(向下看大约 1/4)。

于 2012-05-29T15:07:45.593 回答