Bonjour, je souhaite définir et oublier deux champs pour suivre la date ajoutée de l'enregistrement et la date à laquelle l'enregistrement a également été modifié dans une base de données MySQL. P>
J'utilise "ON Mettre à jour Current_TimeStamp" et j'espérais simplement changer la mise à jour pour insérer. P>
Pas de chance cependant. Quelqu'un peut-il me donner la tête de la meilleure façon de y parvenir? - de préférence dans la base de données elle-même. p>
4 Réponses :
mySQL a une fonction maintenant () que vous pouvez utiliser, voir le didacticiel à Tutoriels Point qui peut vous aider à le mettre en place. p>
Vous avez essentiellement besoin que les deux colonnes soient configurées sous forme de horodatages avec des valeurs par défaut de actuel_timettamp code>. Malheureusement, cela n'est pas autorisé dans MySQL: CREATE TABLE `test` (
`addedDate` dateTime,
`lastModified` timestamp on update CURRENT_TIMESTAMP
)
Merci - c'est ce que je pensais. Ce serait bien de ne pas avoir à être. De toute façon merci de clarifier.
Vous pouvez ajouter une colonne DateTime et définissez-la lorsque vous créez la ligne de données. Cela servira de date à laquelle l'enregistrement a été ajouté. P>
Ceci suppose MySQL 5. Ajoutez simplement deux déclencheurs:
create table foo (a1 INT, created timestamp, updated timestamp) engine=innodb; DELIMITER | CREATE TRIGGER foo_created BEFORE INSERT ON foo FOR EACH ROW BEGIN SET new.created := now(); SET new.updated := now(); END; | CREATE TRIGGER foo_updated BEFORE UPDATE ON foo FOR EACH ROW BEGIN SET new.updated := now(); END; | DELIMITER ; insert into foo (a1) values(7); select * from foo; update foo set a1=9;