Re: [Pgsql-ayuda] funciones...nuevamente

From: "GUSTAVO MARTIN OCAMPO" <gocampo79(at)hotmail(dot)com>
To: alvherre(at)dcc(dot)uchile(dot)cl
Cc: pgsql-ayuda(at)tlali(dot)iztacala(dot)unam(dot)mx
Subject: Re: [Pgsql-ayuda] funciones...nuevamente
Date: 2003-11-12 13:28:54
Message-ID: Law10-F59orufdDh08n000027bb@hotmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

ok Alvaro, gracias porque me lance a programar la funcion con lo poco que se
de pl/pgsql pero ahora me cierra lo que me dijiste y si funciona lo que
quiero hacer no dudare en ponerlo en el sitio de ejemplos.
Ah.... si existiera la posibilidad de que vinieras a la Argentina a realizar
charlas....lo harias?
(Ojo, nada mas es una idea mia).
Desde ya gracias y saludos tambien para toda la lista.-

>From: Alvaro Herrera <alvherre(at)dcc(dot)uchile(dot)cl>
>To: GUSTAVO MARTIN OCAMPO <gocampo79(at)hotmail(dot)com>
>CC: pgsql-ayuda(at)tlali(dot)iztacala(dot)unam(dot)mx
>Subject: Re: [Pgsql-ayuda] funciones...nuevamente
>Date: Wed, 12 Nov 2003 10:08:00 -0300
>
>On Wed, Nov 12, 2003 at 12:05:06PM +0000, GUSTAVO MARTIN OCAMPO wrote:
>
> > Alvaro, lo que quiero hacer es un trigger que se dispare cuando hago
>insert
> > o update sobre una tabla y ejecute una funcion que me extraiga el año
> > (o ano si no sale la eñe) de un campo tipo fecha, [...] almacenarlo en
> > una tabla para despues utilizarlo.
>
>Bueno, primero que nada EXECUTE no recibe expresiones, sólo escalares,
>por lo tanto tienes que usar una variable para construir la consulta y
>darle eso a EXECUTE.
>
>Ademas, no retornes NULL sino NEW (de lo contrario no se va a insertar
>el valor).
>
>Por otra parte, no necesitas un FOR LOOP porque el trigger se ejecuta
>para cada tupla. Puedes hacer
>
>DECLARE
> consulta TEXT;
> anno INTEGER
>BEGIN
> SELECT INTO anno EXTRACT(year FROM NEW.fecha_vencimiento);
> consulta := ''INSERT INTO annos_vencimiento VALUES ('' ||
> anno || '')'';
> EXECUTE consulta;
> RETURN NEW;
>END;
>
>(sin probar, pero la idea es mas o menos esa)
>
>Supongo que en rigor deberías guardar además un contador que diga
>cuantas veces ha aparecido cada año de manera que puedas borrarlo si
>llega a cero (cosa que puede pasar si haces DELETE de todos los
>registros de ese año). Queda de ejercicio para el estudiante ...
>(y de paso, cuando tengas eso listo, lo contribuyes para ponerlo en el
>sitio de ejemplos de pl/pgsql)
>
>--
>Alvaro Herrera (<alvherre[a]dcc.uchile.cl>)
>"Pido que me den el Nobel por razones humanitarias" (Nicanor Parra)

_________________________________________________________________
¿Estás buscando un auto nuevo? http://www.yupimsn.com/autos/

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alvaro Herrera 2003-11-12 13:37:07 [Pgsql-ayuda] Re: cualquier cosa (en el subject)
Previous Message Alvaro Herrera 2003-11-12 13:08:00 Re: [Pgsql-ayuda] funciones...nuevamente