Mysql
 sql >> Base de données >  >> RDS >> Mysql

MySQL ON UPDATE CURRENT_TIMESTAMP ne se met pas à jour

Avez-vous essayé d'utiliser null pour ce champ lors de la mise à jour ?

Vous pouvez également essayer de définir la valeur par défaut sur CURRENT_TIMESTAMP , plutôt que 0000-00-00 00:00:00 .

Néanmoins, chaque fois que je veux avoir le temps de création et de mise à jour, j'utilise toujours ce qui suit :

...
CREATED timestamp NOT NULL default '0000-00-00 00:00:00',
UPDATED timestamp NOT NULL default now() on update now(),
....

J'utilise now() , car est un alias pour CURRENT_TIMESTAMP et c'est plus court. À la fin, la structure de la table obtient CURRENT_TIMESTAMP , alors ne vous inquiétez pas.

L'astuce avec CREATED le champ est de se rappeler d'utiliser null sur les deux champs pour INSERT instructions, pour UPDATE déclarations ce n'est pas obligatoire :

INSERT INTO mytable (field1, field2, created, updated)
VALUES ('foo', 'bar', null, null);