我使用SQLite Expert Personal 3访问和编写sqlite数据库的sql脚本。 我有30个sqlite数据库,它们具有我想要合并的相同结构。 即时通讯使用以下脚本。主数据库的id为自动增量。
attach 'database0001.db3' as toimport;
insert into [main].[Titles] select * from [toimport].[Titles];
insert into [main].[TitlesData] select * from [toimport].[TitlesData];
DETACH DATABASE toimport;
如果必要的话,我也可以轻松地创建一个带有文件名的数据库。
这可以在循环中完成,其中$ variable是文件名,所以我不必写30次相同的脚本吗?
谢谢你,请原谅noob问题:)
答案 0 :(得分:0)
是的,可以使用脚本语言将其写入30次,这样您就不必这样做了。 这是使用perl的一个例子,尽管许多语言可以做类似的事情。
在每次循环中,格式说明符%04d使得十进制值$ variable出现在宽度为4的字段中,左边用零填充。
use strict; use warnings;
my $formatString = "attach 'database%04d.db3' as toimport;
insert into [main].[Titles] select * from [toimport].[Titles];
insert into [main].[TitlesData] select * from [toimport].[TitlesData];
DETACH DATABASE toimport;\n";
for (my $variable = 1; $variable <= 30; ++$variable) {
printf ($formatString, $variable);
}