Database sqlite3中带有变量的循环

Database sqlite3中带有变量的循环,database,sqlite,loops,merge,Database,Sqlite,Loops,Merge,我正在使用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

我正在使用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次了


谢谢你,请原谅我的问题:)

是的,一种脚本语言可以用来编写30次,所以你不必这样做。 下面是一个使用perl的示例,尽管许多语言都可以这样做

在循环的每次传递中,格式说明符%04d都会导致十进制值$变量出现在一个宽度为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);
}
使用严格;使用警告;
my$formatString=“将“数据库%04d.db3”附加为导入;
插入到[main].[Titles]中,从[toimport].[Titles]中选择*;
插入到[main].[TitlesData]中,从[toimport].[TitlesData]中选择*;
分离数据库以导入;\n“;

对于(my$variable=1;$variable),感谢您的回复