Thread DBD::SQLite: Meldung db table is locked(1)
(6 answers)
Opened by Kean at 2011-01-28 10:18
Ich nutze DBI mit SQLite auf einem WindowsXP System und will in einer Schleife mehrere Datensätze löschen. Das ganze mit folgendem Code:
Code (perl): (dl
)
1 2 3 4 5 6 7 8 my $sql = "SELECT ID FROM User WHERE Status = 'X';"; my $sth = $dbh->prepare($sql); $sth->execute; while ( my $id = $sth->fetchrow_array ) { $dbh->do("DELETE FROM User WHERE ID = $id;"); } Das funktioniert bei einem Datensatz wunderbar. Wenn es aber mehrere Datensätze sind löscht er bei jedem starten einen Datensatz und bringt ab dem zweiten folgenden Fehler: Code: (dl
)
DBD::SQLite::db do failed: database table is locked(1) at dbdimp.c line 402 An was könnte das liegen? Ich habe es vorher schon anstatt mit do mit prepare und execute versucht. |