Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

MySQL ON UPDATE CURRENT_TIMESTAMP não atualizando


Você tentou usar null para esse campo ao atualizar?

Você também pode tentar definir o valor padrão para CURRENT_TIMESTAMP , em vez de 0000-00-00 00:00:00 .

No entanto, sempre que quero ter tempo de criação e atualização, sempre uso o seguinte:
...
CREATED timestamp NOT NULL default '0000-00-00 00:00:00',
UPDATED timestamp NOT NULL default now() on update now(),
....

Eu uso now() , porque é um alias para CURRENT_TIMESTAMP e é mais curto. No final, a estrutura da tabela obtém CURRENT_TIMESTAMP , então não se preocupe.

O truque com CREATED campo é lembrar de usar null em ambos os campos para INSERT instruções, para UPDATE declarações não é necessário:
INSERT INTO mytable (field1, field2, created, updated)
VALUES ('foo', 'bar', null, null);