¿Ha intentado usar nulo para ese campo al actualizar?
También puede intentar establecer el valor predeterminado en CURRENT_TIMESTAMP , en lugar de 0000-00-00 00:00:00 .
Sin embargo, siempre que quiero tener tiempo de creación y actualización siempre uso lo siguiente:
...
CREATED timestamp NOT NULL default '0000-00-00 00:00:00',
UPDATED timestamp NOT NULL default now() on update now(),
....
Uso now() , porque es un alias para CURRENT_TIMESTAMP y es mas corto. Al final, la estructura de la tabla obtiene CURRENT_TIMESTAMP , así que no te preocupes.
El truco con CREATED el campo es recordar usar nulo en ambos campos para INSERT declaraciones, para UPDATE declaraciones no es necesario:
INSERT INTO mytable (field1, field2, created, updated)
VALUES ('foo', 'bar', null, null);