如何快速将表从一个数据库复制到另一个数据库

时间:2012-04-29 10:34:20

标签: android sqlite fts3

我有一个数据库,包含一个表和另一个数据库。我需要将这一个表从第一个数据库(使用简单表)复制到第二个数据库。 (在第二个数据库中它应该是fts3表)。因此,我可以打开两个数据库,在第二个数据库中创建新的fts3,并通过select - >将所有数据从第一个数据复制到第二个数据库。插入查询。但还有其他方法可以更快更好地完成吗?

2 个答案:

答案 0 :(得分:5)

据我所知,您描述的方法(即INSERT INTO db2.tbl SELECT * FROM db1.tbl)通常应该是最有效的。

你可以做的是调整sqlite以更快地完成它。首先想到的是禁用journaling(通常很危险,但在您的方案中应该可以接受,因为您仍然拥有数据原件):

pragma PRAGMA journal_mode=OFF:

您也可以关闭synchronous pragma(也是危险的):

PRAGMA synchronous=OFF;

你可以玩一两个pragma可能会有所作为,但我认为我提到的两个将产生最大的影响。

确保在复制后将这些编译指示恢复为原始值。

答案 1 :(得分:3)

嗯,是的,这是最好的方式。创建表,然后插入数据:

INSERT INTO `toDB`.`tableName` SELECT * FROM `fromDB`.`tableName`