[MYSQL] Datum der letzte Aktualisierung einer Tabelle

hartgendorn

Grünschnabel
Hallo,

vielleicht einfach - bestimmt sogar -, aber ich finde die Funktion nicht.

Gibt es in MYSQL die Möglichkeit, das Änderungsdatum einer Tabelle herauszufinden? Ich möchte nämlich gerne bei der Ausgabe die ANzeige "Stand: tt.mm.jjjj" mit aufführen. Bei phpmyadmin finde ich eine solche Angabe, weiß aber nicht, wie es gemacht wird.

Oder muss ich es über ein zusätzliches Feld realisieren und die aktuelle Zeit eintragen?

Danke!
 
Ich hab das mal probiert... aber

$test = "SHOW TABLE STATUS LIKE 'tabellenname' ";
$testresult = mysql_query ($test, $verbindung) or die (fehlerMeldung (__LINE__, $sql));
echo "Letztmalig aktualisiert am " . date("d.m.Y H:i", $Update_time);

liefert mir den 1.1.1970. Was mach ich falsch?
 
aber: zeigt denn das Feld update_time nicht nur an, wann die Tabelle selbst das letzte Mal geändert wurde.

Ich habe die Frage eher so verstanden, dass der aktuelle Stand der eingetragenen Daten angezeigt werden soll. Muss man da nicht ein Feld vom typ TIMESTAMP einfügen, dass dann bei Neueintrag oder Änderung von Daten automatisch den aktuellen Timestamp speichert?

Gruß Marian
 
Hallo,

@heddesheimer:
Zitat aus der MySQL-Doku (http://dev.mysql.com/doc/mysql/en/show-table-status.html):
Update_time
When the data file was last updated.
Bei MyISAM-Tabellen wird mit jeder Änderung an den Daten das Datei-Datum verändert, damit müsste das eigentlich passen. Wie das bei InnoDB ist, weiß ich nicht so recht...

@Mike Rofon:
Du machst die Abfrage (mysql_query) und dann wandelst Du die offensichtlich bis dahin nicht existierende Variable $Update_time mit date() in ein Datum um? Hä?
Also ich fürde das eigentlich so machen:
PHP:
$test = "SHOW TABLE STATUS LIKE 'tabellenname' ";
$testresult = mysql_query ($test, $verbindung) or die('Fehler: ...');
$row = mysql_fetch_assoc($testresult);
$datum = $row['update_time'];
mysql_free_result($testresult);
echo "Letztmalig aktualisiert am " . $datum;

Grüße,
Martin
 
kommt leider keine Datums-ausgabe...
Kann aber daran liegen daß der MySQL-Server ne Version 3.x ist.... hatte ich vergessen dazu zu sagen... sorry
 
in dem Fall kannst du in der Tabelle eine Spalte vom Typ TIMESTAMP z.B. mit dem Namen last_update anlegen. Bei MySQL 3.x wird die erste Spalte mit diesem Typ automatisch aktualisiert, wenn Daten geändert oder eingefügt wurden.

Um das letzte Datum abzurufen machst du diese Abfrage:

Code:
select 
max(last_update) as datum 
from tabelle 
group by last_update

in dem Ergebnisfeld "datum" steht dann der gesuchte Timestamp im Format YYYYMMDD

Gruß Marian
 
Hallo zusammen.

Ich habe das gleiche Problem und habe mit den Hinweisen hier versucht, zu einer Lösung zu kommen. Mit Müh' und Not habe ich das Script soweit umgesetzt, dass es läuft - jedoch auch ohne ein Datum auszugeben. Die Select-Anweisung "Last-Datum" verstehe ich nicht. Kann hier jemand ein vollständiges Scipt einstellen? Wie ist der Wert "$verbindung" zu verstehen? Wie muss der Wert aussehen?
 

Neue Beiträge

Zurück