【发布时间】:2009-08-20 01:33:18
【问题描述】:
我想在某个时间在 Perl 下的 SQLite 数据库上做VACUUM,但它总是说
DBD::SQLite::db 失败:不能从事务中 VACUUM
那么我该怎么做呢?
my %attr = ( RaiseError => 0, PrintError => 1, AutoCommit => 0 );
my $dbh = DBI->connect('dbi:SQLite:dbname='.$file'','',\%attr)
or die $DBI::errstr;
我正在使用AutoCommit => 0。错误发生在:
$dbh->do('DELETE FROM soap');
$dbh->do('DELETE FROM result');
$dbh->commit;
$dbh->do('VACUUM');
【问题讨论】:
-
我的 %attr = ( RaiseError => 0, PrintError => 1, AutoCommit => 0 );我的 $dbh = DBI->connect('dbi:SQLite:dbname='.$file'','',\%attr) 或死 $DBI::errstr;我正在使用 AutoCommit => 0 。并且错误发生在:$dbh->do('DELETE FROM soap;'); $dbh->do('从结果中删除;'); $dbh->提交; $dbh->do('VACUUM');
标签: sql perl sqlite dbi vacuum