8
votes

Quelle est la meilleure façon de configurer des champs de dernière modification et de date-datch-dossier?

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.

J'utilise "ON Mettre à jour Current_TimeStamp" et j'espérais simplement changer la mise à jour pour insérer.

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.


0 commentaires

4 Réponses :


0
votes

mySQL a une fonction maintenant () que vous pouvez utiliser, voir le didacticiel à Tutoriels Point qui peut vous aider à le mettre en place.


0 commentaires

3
votes

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
)


1 commentaires

Merci - c'est ce que je pensais. Ce serait bien de ne pas avoir à être. De toute façon merci de clarifier.




12
votes

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;


0 commentaires