MySQL dispose d'un type TIMESTAMP qui permet d'enregistrer la date et l'heure de création ou de modification d'un enregistrement.
Si on veut enregistrer la date et l'heure de création de l'enregistrement, on peut utiliser la constante "magique" CURRENT_TIMESTAMP comme valeur par défaut de la colonne TIMESTAMP.
ALTER TABLE `ma_table` ADD `created_on` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
Si on veut la date et l'heure de la dernière modification, on ajoutera l'attribut ON UPDATE CURRENT_TIMESTAMP à la colonne.
ALTER TABLE `ma_table` ADD `updated_on` TIMESTAMP ON UPDATE CURRENT_TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
Malheureusement, la constante CURRENT_TIMESTAMP ne peut être utilisée qu'une seule fois dans une table. On doit donc utiliser une valeur nulle ('0000-00-00 00:00:00') pour la valeur par défaut de la colonne created_on et utiliser la fonction NOW() lorsqu'on insère les données.
ALTER TABLE `ma_table` ADD `created_on` TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00'; ALTER TABLE `ma_table` ADD `updated_on` TIMESTAMP ON UPDATE CURRENT_TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP;
INSERT INTO `ma_table` (`created_on`) VALUES (NOW());
Ajouter un commentaire