将内存数据库上的多个SQLite数据库与TCL合并



我需要将存储在文件中的几个数据库的内容添加到内存数据库中。这些数据库是非常大的,并插入所有,我需要很多时间。有没有什么方法能让合并更有效率?我知道对于一个文件,我们可以使用备份方法,也许有其他方法可以进行合并。

最简单的方法可能是将其他数据库附加到内存中的数据库,然后进行适当的表对表复制:

db eval {
ATTACH DATABASE 'other.sqlite3' AS other;
}
# Do this for every database and every table you are interested in
# Or write your queries to keep some data in the other databases; your call
db eval {
INSERT INTO main.fooTable SELECT * FROM other.fooTable;
}

您还可以在进行批量传输时对数据进行重处理。它应该相当快,因为你说你正在写一个内存数据库,不需要主要的完整性保证。

最新更新