Re: Re: [pgsql-es-ayuda] RE: [pgsql-es-ayuda] ¿Como detecto si un UPDATE modifica un campo en especifico?

From: Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
To: Antonio Galicia <antonio(dot)galicia(at)gmail(dot)com>
Cc: Armando Venegas Pérez <venegasp_armando(at)hotmail(dot)com>, Ayuda <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Re: [pgsql-es-ayuda] RE: [pgsql-es-ayuda] ¿Como detecto si un UPDATE modifica un campo en especifico?
Date: 2012-04-20 13:46:10
Message-ID: 1334929345-sup-2881@alvh.no-ip.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda


Excerpts from Antonio Galicia's message of jue abr 19 19:32:08 -0300 2012:
> 2012/4/19 Armando Venegas Pérez <venegasp_armando(at)hotmail(dot)com>:
>
> > Necesito validar explícitamente el QUERY (la sentencia del UPDATE).
> > Si la sentencia modifica el campo "estatus" escribo el valor.
> > Si la sentencia no define algún valor para "estatus" debo ponerlo como NULL.
>
> Entonces lo que quieres es saber si entre la lista de valor que se
> envian al UPDATE incluyen uno para "estatus". No tengo un postgres a
> la mano y en la documentación de la versión 8.4 no dice nada de alguna
> variable con la lista de campos a ser actualizados. Revisar el
> contenido de NEW.estatus no tiene sentido dado que si no se le asignó
> valor en el UPDATE va a tomar el valor que está en el registro.
>
> Estaba buscando en las tablas del sistema si alguna lleva el estado
> del trigger, a saber si tiene la lista de parámetros (valores) pero no
> encuentro algo que de una pista. Esto, claro, desde una lengualje de
> alto nivel. En C puedes revisar el contenido de
> "FunctionCallInfoData".

En un trigger, los argumentos son cosas del tipo NEW y OLD; no están
presentes las cláusulas de la consulta. A mí me parece que un trigger
realmente no es el mecanismo apropiado para resolver este problema.
Quizás sea posible buscar una solución usando reglas; o quizás
simplemente no se puede.

A mí me da la impresión de que toda esta situación es más bien resultado
de un problema que no está correctamente planteado. Esa necesidad de
poner NULL un valor que no se especifica en el update me huele a un
pescado que se ha pasado de días esperando en el mercado -- mientras
más pasan los días, menos probable es que aparezca un comprador.

--
Álvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Armando Venegas Pérez 2012-04-20 16:08:04 ¿Como detecto si un UPDATE modifica un campo en especifico?
Previous Message Alvaro Herrera 2012-04-20 13:41:48 Re: Consultar con Crosstab