# MySQL Timestamp null



## Generic1 (6. Mai 2010)

Hallo,

eine Frage hätte ich noch zu MySQL und zu Timestamp,

ich hab gefunden, dass der Datentyp Timestamp mit Timestamp(8) angegeben wird.
Jetzt hab ich folgende Tabelle:


```
CREATE TABLE TResult(resultid INT NOT NULL,
                     meantime1 TIMESTAMP(8),
                     meantime2 TIMESTAMP(8),
                     endtime TIMESTAMP(8) NOT NULL,
                     FOREIGN KEY(resultid) REFERENCES TParticipant(id),
                     UNIQUE(resultid)
                     ) ENGINE = INNODB;
```

meantime1 und 2 können null sein, endtime kann nicht null sein, wenn ich jetzt mit
INSERT INTO TResult VALUES(1, null, null, null); ein Tupel eingeben will, steht in den Spalten meantime1, 2 und endtime jeweils die aktuelle Zeit drinnen.
Meinen Frage wäre jetzt, was muss ich machen, damit nichts in der Spalte eingetragen wird -> null hilft mal nichts.
Besten Dank,
lg


----------



## SlaterB (6. Mai 2010)

MySQL :: MySQL 5.0 Reference Manual :: 10.3.1.1 TIMESTAMP Properties
u.a.


> # With neither DEFAULT nor ON UPDATE clauses, it is the same as DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP.
> [..]
> # With a constant DEFAULT value, the column has the given default and is not automatically initialized to the current timestamp



DEFAULT NULL scheint dort nicht erlaubt, aber DEFAULT 0 wäre zumindest etwas anderes
(edit: später steht auch TIMESTAMP NULL DEFAULT NULL)


----------



## srea (6. Mai 2010)

DEFAULT NULL nicht, aber 

```
CREATE TABLE t
(
  ts TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP
);
```

und dann null einfügen sollte gehen.

Timestamp Spalten werden automatisch auf NOT NULL gesetzt und man muss manuell NULL erlauben.


----------

