dedlfix: MySQL Timestamp von bereits eingetragenem Item ?

Beitrag lesen

echo $begrüßung;

Dazu ein paar Ergänzungen:

Gibt es eine Möglichkeit heraus zu finden, wie alt die Einträge sind ?
Unter der Voraussetzung, dass du MySQL einen Binlog schreiben lässt und keine der Binlog-Dateien gelöscht hast, findest du einen darin bei jeder Aktion eine Zeitangabe. Binlog-Dateien kannst du mit mysqlbinlog anschauen.

Nicht nur das Binary Log sondern auch das General Query Log ließe sich verwenden.

Das Binary Log verwendet man vor allem, wenn man Replication betreibt, was bei Lastverteilungs- und Hot-Standby-Backup-Szenarien zum Einsatz kommt. Das Hauptaufgabe des General Query Log dürfte das Debugging sein. Beide Logs schaltet man im Allgemeinen nicht ohne Grund ein. Beim Wald- und Wiesen-Hoster dürfte mit Sicherheit keins aktiv sein. Und selbst wenn, wird man nicht daran kommen, weil da auch die Querys der anderen Kunden drinstehen.

Falls man dennoch in der Lage ist, so ein Log auswerten zu können, wird es ziemlich müßig werden. Bei Änderungen eines Datensatzes hat man vielleicht eine eindeutige ID in der Query stehen, wenn man einzelne statt mehrerer Datensätze bearbeitet hat. Das ist von Vorteil, um die Zeitpunkte von Änderungen ermitteln zu können. Bei INSERTs hat man im General Query Log die per auto_increment ermittelte ID nicht mit dabei stehen. Man muss da also anhand des Inhalts zuzüglich der Auswertung möglicher späterer Änderungen desselben auf einen aktuellen Datensatz schließen. Das Binary Log notiert sich wenigestens die verwendete ID. Das Auswerten artet aber in Pfriemelarbeit aus, wenn ich mir so einen Binary-Log-Eintrag ansehe.

#090101 12:17:52 server id 1  end_log_pos 126   Intvar
SET INSERT_ID=10/*!*/;

at 126

#090101 12:17:52 server id 1  end_log_pos 237   Query   thread_id=1     exec_time=0     error_code=0
use test/*!*/;
SET TIMESTAMP=1230808672/*!*/;
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1/*!*/;
SET @@session.sql_mode=0/*!*/;
/*!\C utf8 *//*!*/;
SET @@session.character_set_client=33,@@session.collation_connection=33,@@session.collation_server=33/*!*/;
insert into test (feld1, feld2) values ('a','b')
/*!*/;

at 237

Ich weiß nicht, wie sich das Binary-Log unter vielen nahezu zeitgleichen Zugriffen verhält (in Bezug auf das direkte Hintereinanderstehen der Einträge 126 und 237), und vielleicht unterschlägt das Programm mysqlbinlog einige Information, aber einen unzweifelhaft eindeutigen Zusammenhang zwischen der ID und dem Datensatz sehe ich in diesem Ausschnitt nicht gerade.

echo "$verabschiedung $name";