J'ai une table avec la structure suivante :
+----+-------------+----------------+------------+------------+ | id | some column | another column | inserted | edited | +----+-------------+----------------+------------+------------+ | 1 | ... | ... | 2014-08-15 | 2016-03-04 | | 2 | ... | ... | 2015-09-16 | 2016-10-07 | | 3 | ... | ... | 2016-10-17 | 2016-11-16 | +----+-------------+----------------+------------+------------+
Lors de l'insertion d'une nouvelle entrée, la date actuelle doit être ajoutée à la colonne inserted
. Cela ne devrait jamais changer.
Lors de la modification d'une entrée, la date actuelle doit être ajoutée à la colonne edited
et la date doit être mise à jour à chaque fois que cette entrée est modifiée.
Mon approche consistait à définir le type de données dans les deux cas date
并将标准值更改为 CURDATE()
。但相反,只是将 CURDATE()
à insérer sous forme de chaîne.
MISE À JOUR Voici un exemple de requête :
CREATE TABLE `test`.`testtab` ( `id` INT NOT NULL auto_increment, `some column` VARCHAR(100) NULL, `another column` VARCHAR(100) NULL, `inserted` VARCHAR(100) NULL DEFAULT 'CURDATE()', `edited` VARCHAR(100) NULL DEFAULT 'CURDATE()', PRIMARY KEY (`id`) ) engine = innodb;
Je ne suis cependant pas sûr du type de données.
Essayez de modifier votre schéma comme suit
J'espère que cela vous aidera.
Selon vos besoins, ceci vous conviendra :
Ensuite, extrayez uniquement la partie date lors du traitement :
Vous pouvez utiliser un déclencheur comme solution de contournement pour définir le champ datetime sur NOW() pour les nouvelles insertions :
Cela devrait également fonctionner sur les mises à jour