sql >> Base de Datos >  >> RDS >> Mysql

MySQL ON UPDATE CURRENT_TIMESTAMP no se actualiza

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