kointa: MySQL Timestamp von bereits eingetragenem Item ?

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

  1. yo,

    Gibt es eine Möglichkeit heraus zu finden, wie alt die Einträge sind ?

    nein

    Ilja

  2. 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

    --
    Zend Certified Engineer
    Certified Urchin Admin
    1. 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";

      1. 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