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