MySQL Forums
Forum List  »  German

Kurioses löschen von Einträgen - mal ja, mal nein ...
Posted by: Jay Dee
Date: May 20, 2014 08:34AM

Hallo liebe Community,
ein Perl-Skript, welches per Cronjob alle 10min ausgeführt wird, soll die Einträge der DB abholen, diese jeweils als Datei abspeichern und dann die Daten in der DB löschen.
Das Kuriose daran ist; mal löscht das Skript die Einträge (wie es soll), mal lässt es einige Einträge stehen. Im nächsten Durchlauf -also 10min später- löscht es die vorher nicht gelöschten dann mit...

Das Skript vergleicht anhand "eingefuegt" (Typ timestamp) die Aktualität der Einträge und nimmt den höchsten Wert an - abschliessend bekommt es die Bedingung; lösche alle Einträge <= eingefuegt. (eingefuegt hat das Format 2014-05-20 16:14:47"

Folgende Routine;

my $sth = prepare(SELECT typ,DATE_FORMAT(datum, '%Y%m%d'),eingefuegt,text FROM $dbtable);
$sth->execute or die "Unable to execute query: $dbh->errstr\n";

while($row = $sth->fetchrow_arrayref) {
# zum spaeteren loeschen der schon kopierten Eintraege
$maxzeit = $$row[2] if $$row[2] > $maxzeit;
($typ,$date) = ($$row[0],$$row[1]);

...(skript gekürzt)...

# kopierte Eintraege loeschen
$dbh->do("DELETE FROM $dbtable WHERE eingefuegt <= '$maxzeit'") if $maxzeit;
$dbh->disconnect;

Tja, eigentlich ne Eindeutige Anweisung - völlig willkürlich (kein erkennbares Muster), scheint aber manchesmal die Bedingung "falsch" zu sein, so dass das Skript einen, zwei, drei Eintrag(e) nicht löscht... Die Bedingung muss aber mE immer wahr sein, da jeweils der höchste Wert angenommen wird.

Kann es einen anderen Grund geben?
Ist es möglich, dass die Bedingung erfüllt ist, das Skript also den Eintrag löschen will, aber nicht kann???

Jemand ne Idee oder Ähnliches schon mal erlebt...?

Viele Grüsse,
-jay-

Server: Localhost via UNIX socket
Server Version: 5.1.73-1-log
Protokoll-Version: 10
Apache
MySQL-Client-Version: 5.1.73
PHP Erweiterung: mysqli

Options: ReplyQuote


Subject
Views
Written By
Posted
Kurioses löschen von Einträgen - mal ja, mal nein ...
1020
May 20, 2014 08:34AM


Sorry, you can't reply to this topic. It has been closed.

Content reproduced on this site is the property of the respective copyright holders. It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.