MySQL 5.0 default wert heutiges datum und zeit

tplanitz

Erfahrenes Mitglied
Hallo,

ich lege eine tabelle an mit
PHP:
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:
PHP:
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ß
 
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;
 
Das mit dem Trigger ist nicht unbedingt nötig, MySQL kennt seit Version 4.1 eine identische Syntax für Timestamp-Felder:
SQL:
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
SQL:
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.
 
Zuletzt bearbeitet von einem Moderator:

Neue Beiträge

Zurück