Die Option 'auto_increment' für Zahlfelder haben wir bereits besprochen, etwas ähnliches gibt es auch für Datumsfelder. Wenn wir möchten, dass MySQL immer gleich das aktuelle Datum erfasst, können wir ein 'timestamp'-Feld anlegen.
mysql> alter table akten add DatumErfasst timestamp; Query OK, 2 rows affected (0.01 sec) Records: 2 Duplicates: 0 Warnings: 0 mysql> select * from akten; +-------------------+---------------------+--------+----+----------------+ | Titel | Datum | Seiten | ID | DatumErfasst | +-------------------+---------------------+--------+----+----------------+ | Meine erste Akte | 2003-05-28 00:00:00 | 0 | 1 | 20030526214715 | | Meine zweite Akte | 2003-05-01 00:00:00 | 0 | 2 | 20030526214715 | +-------------------+---------------------+--------+----+----------------+ 2 rows in set (0.00 sec)
Damit wir den gewünschten Effekt sehen können, müssen wir erneut einen Datensatz hinzufügen:
mysql> insert into akten (Titel,Datum) values ('Jetzt mit Zeitstempel', -> '2003-05-28'); Query OK, 1 row affected (0.00 sec) mysql> select * from akten; +-----------------------+---------------------+--------+----+----------------+ | Titel | Datum | Seiten | ID | DatumErfasst | +-----------------------+---------------------+--------+----+----------------+ | Meine erste Akte | 2003-05-28 00:00:00 | 0 | 1 | 20030526214715 | | Meine zweite Akte | 2003-05-01 00:00:00 | 0 | 2 | 20030526214715 | | Jetzt mit Zeitstempel | 2003-05-28 00:00:00 | 0 | 3 | 20030526214830 | +-----------------------+---------------------+--------+----+----------------+ 3 rows in set (0.00 sec)
Bei der Abfrage sehen wir, dass der dritte Datensatz einen aktuelleren Zeitstempel besitzt als die ersten beiden Datensätze. Der Zeitstempel wird bei jedem Verändern der Datentabelle gesetzt.
Pro Tabelle können wir zwar mehrere
'timestamp'-Felder anlegen, automatisch ausgefüllt wird aber immer nur
das erste Feld. Ein zweites 'timestamp'-Feld könnten wir z.B. dafür
verwenden, um neben dem Änderungs- auch das Erfassungsdatum
festzuhalten.