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);