Je veux avoir une table, deux TIMESTAMP
colonnes. Une colonne de garder une trace de quand le dossier a été créé et un autre pour garder une trace de quand il a été modifié. Je veux que ces valeurs gérées par la base de données. Je ne veux pas que mon application de la couche à avoir à y penser.
Je sais que si vous avez un TIMESTAMP
colonne DEFAULT CURRENT_TIMESTAMP
ou ON UPDATE CURRENT_TIMESTAMP
vous ne pouvez pas avoir un autre TIMESTAMP
colonne. Vous pouvez utiliser DATETIME
, mais il n'y a aucun moyen de défaut, que je sache, à l'extérieur d'un déclencheur.
J'ai trouvé que vous pouvez avoir plusieurs TIMESTAMP
colonnes en laissant à chaque sans DEFAULT
ou ON UPDATE
et en insérant NULL
lorsque l'enregistrement est créé, provoquant de chacun pour avoir le timestamp actuel. À partir de ce point sur la première colonne sera automatiquement mis à jour.
Cela fonctionne fantastiquement mais il me laisse une drôle de sensation. Comme cela peut-être un bug et il pourrait être modifié à tout moment. Si c'est la façon dont il est censé travailler, alors ainsi soit-il. Je vais aller gaiement sur mon chemin. Quelqu'un peut me dire si c'est la meilleure façon de le faire ou dois-je utiliser les déclencheurs?