2009-08-15 5 views
4

J'ai une table où j'ai deux champs:MySQL (DEFAULT + ON UPDATE) TimeStamps

dateCreated 
dateUpdated 

Je veux les deux champs de tenir horodatages, dateCreated d'avoir un drapeau DEFAULT TIMESTAMP CURRENT et dateUpdated avoir un comportement ON UPDATE CURRENT TIMESTAMP, semble toutefois que je ne peux pas avoir plus d'un type de champ timestamps sur la même table.

Ce serait vraiment utile si la base de données pouvait prendre soin de cela pour moi, puis-je contourner ce problème en quelque sorte?

Répondre

2

OUI NOUS POUVONS.

Vous pouvez utiliser un trigger pour mettre à jour le champ, comme suit:

create trigger CreationTimestamp after insert on MyTable for each row 
begin 
    update MyTable set CreateField = UpdateField where id = new.id 
end 

De cette façon, vous pouvez définir votre champ auto-mise à jour en utilisant la méthode MySQL native, et l'utiliser pour capturer la date de création.

+0

Je suis content que nous puissions! Merci beaucoup! –