Czy próbowałeś użyć wartości null dla tego pola podczas aktualizacji?
Możesz także spróbować ustawić domyślną wartość na CURRENT_TIMESTAMP
, a nie 0000-00-00 00:00:00
.
Niemniej jednak, gdy chcę mieć czas na tworzenie i aktualizację, zawsze używam:
...
CREATED timestamp NOT NULL default '0000-00-00 00:00:00',
UPDATED timestamp NOT NULL default now() on update now(),
....
Używam now()
, ponieważ jest aliasem dla CURRENT_TIMESTAMP
i jest krótszy. Na koniec struktura tabeli otrzymuje CURRENT_TIMESTAMP
, więc nie martw się.
Sztuczka z CREATED
pole należy pamiętać o użyciu null w obu polach dla INSERT
oświadczenia, dla UPDATE
oświadczenia nie jest wymagane:
INSERT INTO mytable (field1, field2, created, updated)
VALUES ('foo', 'bar', null, null);