MySQL crée l'heure et met à jour l'heure
Je suis la création de quelques tables où je veux stocker le moment où un dossier a été créé et la date de la dernière mise à jour. J'ai pensé que je pourrais avoir deux champs d'horodatage où l'on aurait la valeur CURRENT_TIMESTAMP
les autres,CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
. Mais je suppose que je ne peux pas le faire car vous pouvez avoir seulement 1 champ d'horodatage avec une valeur par défaut dans un tableau?
Comment me recommandez-vous d'obtenir et stocker les deux fois? Merci!
source d'informationauteur Aishwar
Vous devez vous connecter pour publier un commentaire.
Vous pouvez avoir deux colonnes de type timestamp dans une table.
Les ouvrages suivants pour MySQL 5.0
Je pense que vous confondez avec SQL Server (où l'horodatage n'est pas vraiment un "time stamp" et il n'y a en effet une limite sur un seul "timestamp" colonne)
Edit: Mais vous aurez besoin d'un déclencheur pour mettre à jour le update_at colonne à chaque fois que la ligne est modifiée.
Un bon moyen pour créer des champs comme "créé" et "mise à jour" est
Et son nécessaire pour entrer les valeurs null dans les deux colonnes lors de la "insérer":
Et maintenant, dans toutes les mises à jour, la "mise à jour" de terrain aura une nouvelle valeur à la date actuelle.
Source : http://gusiev.com/2009/04/update-and-create-timestamps-with-mysql/
Depuis MYSQL version 5.6.5 vous pouvez faire cela en utilisant par DÉFAUT et SUR la mise à JOUR. Pas de déclencheurs sont nécessaires.
ts_create
HORODATAGE PAR DÉFAUT CURRENT_TIMESTAMP,ts_update
HORODATAGE PAR DÉFAUT CURRENT_TIMESTAMP SUR LA MISE À JOUR CURRENT_TIMESTAMPAutant que je sache, il n'y a aucun moyen de contourner cette restriction. Vous devez définir manuellement (au moins) l'un de l'horodatage, la façon la plus simple est juste de l'ajouter
updated = NOW()
à laUPDATE
-requête.Vous aurez besoin de deux colonnes: CREATE_TIME et UPDATE_TIME.
Vous voudrez peut-être ajouter CREATE_USER et UPDATE_USER.
Peut-être vous voulez avoir un 1:de nombreuses relations avec le nom de la colonne changé, les anciennes et les nouvelles valeurs.
C'est toute la partie de la capture de données modifiées. Vous pourriez avoir de la CDC des tables sont mises à jour à l'aide de déclencheurs.
Je laisse le timestamp actuel la façon dont vous l'avez suggéré, et de le remplir dans le champ created_at avec la date actuelle sur insérer.