From: | Stéphane Bunel <stephane(at)stratum-ip(dot)net> |
---|---|
To: | chetzacoalt(at)free(dot)fr |
Cc: | pgsql-fr-generale(at)postgresql(dot)org |
Subject: | Re: date de la derniere modif |
Date: | 2005-07-28 08:25:43 |
Message-ID: | 42E89687.5020704@stratum-ip.net |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-fr-generale |
santiago wrote:
> salut
>
> je voudrais savoir si postgres conserve la date de derniere modif pour
> chaque ligne ?
Je ne crois pas avoir déjà vu cela.
> je cherche, mais j'arrive pas a trouver. je suppose que ca signifie non.
> Il y a un moyen simple de rajouter ca ?
Oui avec un trigger, par exemple :
1) Vous ajouter à <votre table> un champs de type timestamp, tel que :
m_time timestamptz NOT NULL DEFAULT now(),
2) Ce champ sera modifier par la fonction suivante :
CREATE OR REPLACE FUNCTION tf_update_m_time()
RETURNS "trigger" AS
$BODY$
BEGIN
NEW.m_time := now() ;
RETURN NEW;
END;
$BODY$
LANGUAGE 'plpgsql' VOLATILE;
3) Fonction qui sera appelée sur l'évènement de votre choix, par exemple
à chaque UPDATE de <votre table>, tel que :
CREATE TRIGGER t_m_time
BEFORE UPDATE
ON <votre table>
FOR EACH ROW
EXECUTE PROCEDURE tf_update_m_time();
Stéphane BUNEL.
PS: Dans le 2) la notation $BODY$ n'est valable qu'a partir de PG8. Pour
un PG plus "ancien", utilisez des simples quote (').
From | Date | Subject | |
---|---|---|---|
Next Message | santiago | 2005-07-28 08:44:32 | Re: date de la derniere modif |
Previous Message | santiago | 2005-07-28 08:21:24 | Re: date de la derniere modif |