# MySQL 5.0 default wert heutiges datum und zeit



## tplanitz (22. August 2006)

Hallo,

ich lege eine tabelle an mit

```
create table test (
attribut_data VARCHAR(80) NULL,
attribut_datum DATETIME NULL DEFAULT ?
)
```

Wenn nun kein datum von der transaction zur tabelle übergeben wird soll default mäßig das heutige datum und die uhrzeit eingetragen werden.

In oracle habe ich das so gemacht:

```
attribut_datum TIMESTAMP(9)  DEFAULT current_timestamp NULL
```

Kann jemand helfen? Ich verwende kein PHP und befülle die tabellen nur mit insert/update.

Gruß


----------



## z-coupe (24. August 2006)

Setz ein before- Insert Trigger drauf und prüf Deinen Wert. Wenn das Datum nicht gesetzt ist schreibst du da das aktuelle rein. Der Code im Trigger müsste in etwa so aussehen.
Guck mal in der MySql- Referenz nach.

IF :NEW.Datum IS NULL THEN 
  :NEW.Datum = current_timestamp;
END IF;


----------



## ManicMarble (27. August 2006)

Das mit dem Trigger ist nicht unbedingt nötig, MySQL kennt seit Version 4.1 eine identische Syntax für Timestamp-Felder:

```
CREATE TABLE `tabelle` (
  ...,
  `datum` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  ...
)
```
Siehe auch: http://dev.mysql.com/doc/refman/5.0/en/timestamp-4-1.html

Mit dem Zusatz

```
ON UPDATE CURRENT_TIMESTAMP
```
wird zusätzlich bei jedem Update die aktuelle Zeit eingetragen.

Das alles funktioniert allerdings nur für ein einziges Timestamp-Feld pro Tabelle.


----------

