From: | Dimitri Fontaine <dimitri(at)2ndQuadrant(dot)fr> |
---|---|
To: | Martine AGUERA <martine(dot)aguera(at)laas(dot)fr> |
Cc: | pgsql-fr-generale(at)postgresql(dot)org |
Subject: | Re: PostgreSQL9.1 trigger avec arguments |
Date: | 2013-08-27 19:59:02 |
Message-ID: | m2li3mx5vd.fsf@2ndQuadrant.fr |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-fr-generale |
Dimitri Fontaine <dimitri(at)2ndQuadrant(dot)fr> writes:
> Je crois que je vais transformer cela en article plus complet, merci
> pour le sujet :)
Et c'est enfin chose faite :
http://tapoueh.org/blog/2013/08/27-auditing-changes-with-hstore
> En réalité BEFORE INSERT est trop tôt pour pouvoir exploiter le type de
> données de NEW, qui n'est pas encore résolu. Cela permet de modifier le
> tuple afain qu'il respecte les contraintes du type de données…
Je m'étais fais avoir par une erreur pas si facile à corriger
(d'ailleurs personne ici semble n'avoir relevé) : un trigger par défaut
est FOR EACH STATEMENT, ce qui prive complètement sa procédure associée
d'accès au variables OLD et NEW, mais avec un message d'erreur étrange.
> ERROR: record "new" is not assigned yet
> DETAIL: The tuple structure of a not-yet-assigned record is indeterminate.
En précisant FOR EACH ROW on s'en sort très bien. Il se trouve que j'ai
fait à nouveau l'erreur récemment et que cette fois j'ai pris le temps
de comprendre et corriger, d'où la sortie tardive d'unarticle détaillé.
En espérant que cela soit encore utile,
--
Dimitri Fontaine
http://2ndQuadrant.fr PostgreSQL : Expertise, Formation et Support
From | Date | Subject | |
---|---|---|---|
Next Message | Pierre BOIZOT | 2013-08-28 08:41:39 | une autre histoire de triggers.... |
Previous Message | Pierre BOIZOT | 2013-08-25 20:26:01 | Re: Oracle vers postgresql : Conversion de code : questions |