Hello,
Ich brauche den Eintrag, der einfach den neuesten Timestamp der gesamten Table enthält. Also quasi die ganze Zeile ausgeben, in der der insgesamt neueste Timestamp aus beiden Spalten enthalten ist.
Dann mache es so, wie ich sagte:
lock tables $table read; # fragen ob es geklappt hat!
select id, time1 from $table order by time1 desc limit 0,1;
select id, time2 from $table order by time2 desc limit 0,1;
unlock tables; ## ggf auch erst am Ende der gesamten Verarbeitung
und dann mit PHP oder Perl die beiden results abholen und einfach vergleichen, welcher
Timestamp der größere ist und die ID als Ergebnis der Funktion zurückgeben.
Wenn das DBMS Stored Procedures kann, kann man das auch dort vergleichen lassen.
Das Ergebnis ist natürlich nur der Snapshot zur Gültigkeitszeit, als das Lock
gesetzt wurde. Sowie das Unlock gesendet wird, Endet der Gültigkeitsbereich
des Ergebnisses. Wenn das Ergebnis dazu dienen soll, irgendwo Daten zu verändern,
muss man mit Write-Lock arbeiten, auch wenn in dieser Tabelle gar nicht geschrieben
wird. Das gilt natürlich nur für den konkurrierenden Betrieb, aber den hat man bei
Internetapplikationen ja meistens.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau