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: | 2012-12-06 11:09:50 |
Message-ID: | m2boe75tdt.fsf@2ndQuadrant.fr |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-fr-generale |
Martine AGUERA <martine(dot)aguera(at)laas(dot)fr> writes:
> pour faire simple j'ai retenu dans un premier temps la proposition de
> Francois Figarola où je teste le nom de la table qui a déclenché le trigger
> et selon le cas j'utilise les noms des colonnes correspondantes.
C'est clairement mieux.
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…
Mes essais donnent donc, logiquement :
ERROR: record "new" is not assigned yet
DETAIL: The tuple structure of a not-yet-assigned record is indeterminate.
CONTEXT: PL/pgSQL function tg_duration() line 6 at assignment
La version dynamique qui fonctionne est détaillée dans l'article suivant
et je pensais pouvoir exploiter l'opérateur #= dans notre cas pratique.
http://tapoueh.org/blog/2010/11/24-dynamic-triggers-in-plpgsql.html
http://www.postgresql.org/docs/9.2/static/hstore.html
--
Dimitri Fontaine
http://2ndQuadrant.fr PostgreSQL : Expertise, Formation et Support
From | Date | Subject | |
---|---|---|---|
Next Message | Dimitri Fontaine | 2012-12-07 10:31:18 | Dépôt Debian/Ubuntu de paquets PostgreSQL |
Previous Message | Martine AGUERA | 2012-12-06 10:51:03 | Re: PostgreSQL9.1 trigger avec arguments |