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 |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
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
From | Date | Subject | |
---|---|---|---|
Next Message | Jean-Christophe Arnu | 2005-07-28 09:34:48 | Re: Abeille |
Previous Message | Jean-Christophe Arnu | 2005-07-28 09:18:53 | Abeille |