Vous n'êtes pas identifié(e).

#1 28/06/2016 11:55:56

sangokussj4
Membre

trigger et procédure

bonjour,
je débute en postgres, mais suis confirmé en SQLserver ou oracle, et là je bute sur quelque chose de simple.
je souhaite, surveiller une table avec un trigger, sur insertion et modification, afin de récupérer dans une autre table , et venir à la volée insérée cette valeur dans un champs de ma table.
exemple :
j’insère A dans matable
je veux qu'une des valeur  de A, dans matable prenne la valeur C

je n'y parviens pas...
j'ai vu qu'il fallait créer un procédure appelée par le trigger en postgres, est ce obligatoire, ou bien peut on faire un trigger qui fait tout ?
merci d'avance pour votre aide.

Hors ligne

#2 28/06/2016 12:19:42

Marc Cousin
Membre

Re : trigger et procédure

Bonjour,

Dans Postgres, on sépare le code du trigger et le trigger lui-même. On crée donc une fonction trigger, qui est ensuite appelée par le trigger. Ça fait une commande de plus à taper, mais ça permet d'avoir un code réutilisable pour les triggers.

La séquence est assez simple:

create function ma_fonction_trigger () returns trigger as
…

puis

create trigger mon_trigger before insert or update or delete on ma_table for each row execute procedure ma_fonction_trigger()

Comparé à un trigger oracle, la seule «vraie» différence, c'est juste que le code du trigger aboutit dans la fonction.

C'est expliqué dans la doc ici: https://www.postgresql.org/docs/current … igger.html


Marc.

Hors ligne

Pied de page des forums