将第二个数据库中的表名插入到临时表中:INSERT INTO db2_tables SELECT name FROM db2.sqlite_master WHERE type='table' ORDER BY name;
使用循环遍历临时表,依次将第二个数据库中的表和数据复制到第一个数据库中,比如:
BEGIN;
INSERT INTO main.table1 SELECT * FROM db2.table1;
INSERT INTO main.table2 SELECT * FROM db2.table2;
COMMIT;
删除临时表:DROP TABLE db2_tables;
关闭第二个数据库:DETACH DATABASE db2;
关闭第一个数据库:.exit
注意事项:
确保两个数据库中不存在相同的表名,否则复制表的操作会报错。
如果需要复制的表结构不完全相同,需要手动调整复制语句中的列名和列类型。
复制大量数据时,需要控制事务大小,以避免性能问题和内存问题。