Re: trigger sur update

From: "Froggy / Froggy Corp(dot)" <froggy(at)froggycorp(dot)com>
To: chetzacoalt(at)free(dot)fr
Cc: pgsql-fr-generale(at)postgresql(dot)org
Subject: Re: trigger sur update
Date: 2005-07-30 10:35:44
Message-ID: 42EB5800.FB9E6C0@froggycorp.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-fr-generale

Bonjour,

Je te renverrais bien à la doc qui l'explique tres bien ;)

Il y a deux manieres d'appeler un TRIGGER :
- BEFORE : Le trigger est exécuté avant la modification dans la table.
- AFTER : le trigger est exécuté apres modification de la table.

Concernant les variables NEW et OLD :
- La variable NEW contient les données que tu souhaites modifie dans le
cas d'un INSERT/UPDATE.
Par exemple pour un "INSERT INTO table (champ1, champ2) VALUES (1, 2);"
avec un trigger BEFORE INSERT, ta variable NEW va etre de la forme :
NEW.champ1 := 1;
NEW.champ2 := 2;
Si dans ton TRIGGER tu fais des modifications sur la variable NEW, PG
va automatiquement les appliques. Donc si tu modifies "NEW.champ2 :=
25", PG va execute "INSERT INTO table (champ1, champ2) VALUES (1, 25);".

- La variable OLD contient les anciennes données dans le cas d'un
UPDATE/DELETE.

Il n'y a que dans le cas de l'UPDATE que les variables NEW et OLD et
n'ont pas forcément les memes valeurs car tu peux faire un UPDATE dans
ton trigger, ce qui modifie les constantes.

En espérant avoir donné quelques réponses.

++

santiago wrote:
>
> bonjour
>
> je voudrais comprendre un peu mieux comment fonctionne un trigger dans
> le cas d'un update.
>
> ma question est : qui appelle le trigger ?
>
> ce que j'ai compris jusqu'a present, c'est que dans le cas de l'update,
> le trigger a a sa disposition, typiquement, new et old. Il fait ses
> calculs, puis rend une valeur. qui recupere cette valeur, et qu'en
> fait-il ? et en quoi cela varie-t-il si le trigger est appelle avant ou
> apres l'update (car dans les deux cas, on dispose des memes new et old
> je suppose) ?
>
> merci pour vos pistes et idees de tests sur le comportement
>
> ---------------------------(end of broadcast)---------------------------
> TIP 1: if posting/reading through Usenet, please send an appropriate
> subscribe-nomail command to majordomo(at)postgresql(dot)org so that your
> message can get through to the mailing list cleanly

In response to

Browse pgsql-fr-generale by date

  From Date Subject
Next Message michel vrand 2005-07-31 07:30:18 unsubscribe pgsql-fr-generale
Previous Message santiago 2005-07-30 10:19:07 trigger sur update