在sqlite3中循环变量
loop with variable in sqlite3
我正在使用 SQLite Expert Personal 3 为 sqlite 数据库访问和编写 sql 脚本。
我有 30 个 sqlite 数据库,它们具有我想要合并的相同结构。
我使用以下 script.The 主数据库将 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 次?
谢谢,请原谅菜鸟问题:)
是的,一种脚本语言可以用来编写 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);
}
我正在使用 SQLite Expert Personal 3 为 sqlite 数据库访问和编写 sql 脚本。 我有 30 个 sqlite 数据库,它们具有我想要合并的相同结构。 我使用以下 script.The 主数据库将 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 次?
谢谢,请原谅菜鸟问题:)
是的,一种脚本语言可以用来编写 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);
}