J'utilise timestamp sur MySQL 5.x (avec PHP) pour mémoriser les temps d'événement. Pendant le développement, j'ai dû mettre à jour la table avec une requête qui modifie quelque chose dans toutes les colonnes. L'horodatage a ensuite été réinitialisé à l'heure actuelle.
Comment puis-je modifier l'horodatage uniquement sur les insertions et non sur les mises à jour ou les remplacer?
Voici tout ce que vous devez savoir . En bref, cependant, je pense que cela devrait le faire:
ALTER TABLE `mytable`
CHANGE `mydatefield` `mydatefield`
TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
Je suggère d'utiliser DATETIME pour cette colonne. Cela ne changera pas lorsque l'enregistrement est mis à jour.
Pour moi, j'utilise TIMESTAMP pour suivre la dernière fois que l'enregistrement a été touché, bien qu'en général, je l'évite.
Vous pouvez utiliser un valeur par défaut pour ce champ et ne pas l'inclure dans la requête d'insertion ou de mise à jour.
ts TIMESTAMP DEFAULT CURRENT_TIMESTAMP
Très bonne documentation ici pour l'horodatage .