2

我有一个数据库,一个表和另一个数据库。我需要将这个表从第一个数据库(带有简单表)复制到第二个。(在第二个数据库中,它应该是 fts3 表)。因此,我可以打开两个数据库,在第二个数据库中创建新的 fts3,然后通过 select -> insert 查询将所有数据从第一个数据库复制到第二个数据库。但是有没有其他方法可以更快更好地做到这一点?

4

2 回答 2

5

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

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

pragma PRAGMA journal_mode=OFF:

您还可以关闭synchronous编译指示(也很危险):

PRAGMA synchronous=OFF;

您还可以使用一两个以上的 pragma,这可能会产生影响,但我认为我提到的两个将产生最大的影响。

确保在复制后将这些 pragma 恢复为其原始值。

于 2012-04-29T10:42:02.213 回答
3

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

INSERT INTO `toDB`.`tableName` SELECT * FROM `fromDB`.`tableName` 
于 2012-04-29T10:38:13.037 回答