Skip site navigation (1) Skip section navigation (2)

Re: date de la derniere modif

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 09:26:43
Message-ID: 42E8A4D3.3060008@stratum-ip.net (view raw or flat)
Thread:
Lists: pgsql-fr-generale
santiago wrote:
> merci, j'aurais meme pas a chercher :)
> 
> j'en profite pour ajouter une autre question :
> est ce qu'un trigger defini comme ici sur les update d'un table A
> peut modifier une table B ?

Bonjour,

Il suffit de mettre le même trigger sur la table B si celle-ci a aussi 
un champ m_time. Sachez qu'il est possible de faire pratiquement tout ce 
que l'on veut dans une fonction. Elle peut-être écrite en d'autre 
langage que plsql. Moi même j'utilise plutôt Python dès que la fonction 
à écrire est un peut plus complexe. D'autre préférerons perl, C, ...

Stéphane BUNEL.

> 
> merci
> 
> 
> Stéphane Bunel wrote:
> 
>>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 (').
>>
>>
> 
> 
> ---------------------------(end of broadcast)---------------------------
> TIP 6: explain analyze is your friend


In response to

Responses

pgsql-fr-generale by date

Next:From: Jean-Christophe ArnuDate: 2005-07-28 09:34:48
Subject: Re: Abeille
Previous:From: Jean-Christophe ArnuDate: 2005-07-28 09:18:53
Subject: Abeille

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group