Wie das 'last-update' einer tabelle abfragen?

Hallo zusammen!

Ich möchte das Datum herausfinden, an dem eine Tabelle das letzte Mal bearbeitet wurde.

In der MySQL-Doku habe ich auch was gefunden das sich ‚Show Table Status‘ nennt und offensichtlich
auch genau das beinhaltet bzw. zurückgibt, was ich benötige.

Leider weiß ich nicht, wie der Befehl anzuwenden ist und habe auch kein Beispiel finden können.
Alle meine Versuche bisher sind kläglich gescheitert.

Am liebsten wäre mir eine Realisierung mittels PHP.

Hat da jemand Hilfe für mich?

Bedanke mich im Voraus!

Knud

Hi.

Ich möchte das Datum herausfinden, an dem eine Tabelle das
letzte Mal bearbeitet wurde.
In der MySQL-Doku habe ich auch was gefunden das sich ‚Show
Table Status‘ nennt und offensichtlich
auch genau das beinhaltet bzw. zurückgibt, was ich benötige.

Der Befehl macht auch genau das: „SHOW TABLE STATUS FROM Tabellen_Name“ gibt als Result alle Tabellennamen + den entsprechenden Informationen zurück.

Falls der Befehl auf der MySQL-DB bei deinem Provider nicht funktioniert wird es wohl daran liegen, dass der Befehl laut Doku erst ab Version 3.23 implementiert ist. Vielleicht betreibt dein Provider noch eine ältere Version?

mfG,

J.P.Jarolim

Habe das gerade mal ausprobiert, es geht bei mir nur mit

SHOW TABLE STATUS FROM datenbankname
nicht mit tabellenname

Ich hab mir da mal eine Funktion gemacht:

Man ruft sie folgendermaßen auf:

$iLastMod = GetLastModDB(array('track\_main'), getlastmod());

Sie ermittelt dann das letzte Modifikationsdatum der Tabellen im Array, bzw der PHP-Datei selbst.

die Funktion:

function GetLastModDB($xastrTableNames, $xidtLastMod)
{
 global $iDB;

 foreach($xastrTableNames as $strTableName)
 {
 $iResult = mysql\_query('show table status like "' . $strTableName . '"', $iDB);
 if($iResult)
 {
 while($aRow = mysql\_fetch\_array($iResult, MYSQL\_ASSOC))
 {
 $iDate = strtotime($aRow["Update\_time"]);
 if($iDate \> $xidtLastMod)
 {
 $xdtLastMod = $iDate;
 }
 } // while row
 mysql\_free\_result($iResult);
 }
 } // foreach Table
 return $xidtLastMod;
}

Das $iDB komm von: $iDB = @mysql_connect(…

Ich hoffe, sie hat keine Fehler, weil bis jetzt habe ich sie immer nur einmal mit einer Tabelle verwendet…

Hannes

Dawischt
Kommt davon, wenn man seine Antwort zu schnell abschickt :wink:
Habs natürlich auch mit DB-Name ausprobiert.

mfG,

J.P.Jarolim