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