MySQL Timestamp von bereits eingetragenem Item ?
kointa
- datenbank
Hi,
ich wollte euch mal fragen, da ich per Google nichts finde, ob es möglich ist das Eintragedatum eines Beitrages in MySQL nachträglich heraus zu finden !?
Ich habe mir jetzt eine weitere Spalte mit Timestamp eingerichtet, jedoch steht jetzt nur bei allen folgenden Einträgen das Datum.
Habe damals leider nicht gewusst, dass ich das Datum einmal brauchen würde.
Gibt es eine Möglichkeit heraus zu finden, wie alt die Einträge sind ?
Hoffe da kann mir jdn helfen.
Vielen Dank
Grüße
kointa
yo,
Gibt es eine Möglichkeit heraus zu finden, wie alt die Einträge sind ?
nein
Ilja
Guten Tag,
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.
Ansonsten nicht.
Gruß
Christoph Jeschke
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/*!*/;
#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')
/*!*/;
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";
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";
Danke euch, ich hab leider keinen Zugriff auf dieses LOG.
Werde wohl einfach jedem Eintrag das Datum des Umstellens auf Datenbank zuweisen. Ist zwar schade, aber auch nicht so schlimm ;).
Danke
Grüße