Hugo Egon Balder: Löschen aller Datensätze ab bestimmten Alter

Beitrag lesen

Hi deldfix,

Ah, da ist wohl also doch schon so ein TIMESTAMP-Feld vorhanden?

Also was immer ich auch mit einer DB mache, bei mir hat jede Tabelle (wirklich immer!) als erstes die id-Spalte als Primärschlüssel und als zweites eine timestamp-Spalte, damit die Erstellung des Datensatzes erkennbar/verwendbar ist.

Ich finde ja das Rechnen mit INTERVAL einfacher zu lesen: WHERE feld < NOW() - INTERVAL 2 HOUR

Das war's. Genau sowas hab ich gesucht! Ich wußte ja, wieso ich nachfragen soll, ob das mit den Datums- und Zeitfunktionen von MySql nicht noch einfacher geht. Also danke vielmals für den Hinweis, lieber dedlfix!

Für den Fall mit den 2 Stunden reicht ja wirklich ein

$deleteolds='DELETE FROM `tabelle` WHERE `erstellung` < NOW() - INTERVAL 2 HOUR';  
$db->query($deleteolds);

und für den Fall mit den 6 Monaten ein

$deleteolds='DELETE FROM `tabelle` WHERE `erstellung` < NOW() - INTERVAL 6 MONTH';  
$db->query($deleteolds);

Nur so nebenbei: Bevor ich die Frage gepostet habe, war ich immer wieder auf der Seite mit den Datums- und Zeitfunktionen. Sowohl auf der Englischen, als auch auf der Deutschen. Aber wie sol man als Nichtinformatiker da je durchblicken und das verstehen? In 100 Jahren wäre ich ohne Dich nicht auf dierse Lösung gekommen! Und auch jetzt im Nachhinein check ich es nicht, wenn ich dort lese. Auf der Englischen Seite in der Tabelle zu Beginn gibt es dieses "INTERVAL" nicht mal in der Übersicht. Auf der Deutschen Seite gibt es nicht mal die Tabelle. Das "INTERVAL" kommt irgendwann so nebenbei ... steht plötzlich mitten in der Funktion ohne größere nähere Erklärung.

Irgendwann kommt dann auch eine Tabelle, vor der steht "Das Schlüsselwort INTERVAL und die Angabe type unterscheiden die Groß-/Kleinschreibung nicht. Die folgende Tabelle zeigt die erwartete Form des Arguments expr für die einzelnen type-Werte." Was jetzt der Unterschied zwischen zB. MONTH und MONTHS ist, ist mir nicht erklärlich. Genausowenig verstehe ich, wozu man zB. Funktionen wie DATEDIFF oder DATE_ADD braucht. Ich verstehe zwar, was da gemacht wird, aber wozu man das braucht, check ich nicht. Was wäre denn da ein konkretes Ziel bei einer DB-Verwendung und wie sähe da dann der Code aus?

Naja, ich werd diese Handbücher nie verstehen und es wird mich immer wieder ärgern, dass Leute, die sowas verfassen, didaktisch nicht in der lage sind, etwas so zu erklären, dass man NICHT studiert haben muß, um es zu verstehen.

Jedenfalls danke nochmals für den Hinweis, wie ich es besser machen kann!

MfG

Hugo E.B.