Sven Rautenberg: Eine Lösung in MySQL gefunden, neues Problem erfunden!

Beitrag lesen

Moin!

Ich frage mich allerdings, wozu du in deinem ersten Beispiel noch eine TIMESTAMP-Spalte eingefügt hast?

Es ging nur um die Differenzierung zwischen datetime und timestamp. Timestamp wird automatisch gepfelgt und symbolisiert daher immer den letzten Zugriff auf dem Datensatz und DateTime muss explizit gesetzt werden, und eigenet sich daher z.B. für das erste Auftreten eines Ereignisses. Also z.B. nur setzen bei insert.

Nö. Die _erste_ Timestamp-Spalte eines Datensatzes wird automatisch mit aktualisiert, wenn der Datensatz _geändert_ wird. Natürlich kann man die Spalte auch explizit setzen, oder mit NOW() befüllen.

Mit anderen Worten: Es ist kein Problem, in einem Datensatz zwei Timestamps zu haben, die genau das machen, was deine DATETIME/TIMESTAMP-Variante auch macht. Man kann darüber streiten, welche Variante eleganter ist.

In beiden Fällen werden ganz grob gesehen alle Datensätze gelöscht, die älter als eine Stunde sind.

Aber auch nur _ganz_ grob!

Jedenfalls werden keine Datensätze gelöscht, die jünger als eine Stunde sind. :)

- Sven Rautenberg

--
"Beim Stuff für's Web gibts kein Material, was sonst das Zeugs ist, aus dem die Sachen sind."
(fastix®, 13. Oktober 2003, 02:26 Uhr -> </archiv/2003/10/60137/#m338340>)