From: | "Ariel Tavella" <tavella(at)aguasgo(dot)com(dot)ar> |
---|---|
To: | "Alvaro Herrera" <alvherre(at)surnet(dot)cl> |
Cc: | "listapl" <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: Ayuda Sobre Trigger |
Date: | 2005-06-08 22:54:18 |
Message-ID: | 024001c56c7d$02ef82d0$c400a8c0@estacion02 |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Hola Alvaro
Lo que pasa es que en la tabla "prueba" se almacenan segmentos de una calle
y lo que intento hacer es mantener en tabla2 (las calles) el minimo y el
maximo valor de la altura de cada calle.
De todos modos muchas gracias, tu recomendacion soluciono el problema.
Ariel Tavella
Planeamiento y Proyecto
Aguas de Santiago SA
(0385) 4226532
----- Original Message -----
From: "Alvaro Herrera" <alvherre(at)surnet(dot)cl>
To: "Ariel Tavella" <tavella(at)aguasgo(dot)com(dot)ar>
Cc: "listapl" <pgsql-es-ayuda(at)postgresql(dot)org>
Sent: Wednesday, June 08, 2005 7:37 PM
Subject: Re: [pgsql-es-ayuda] Ayuda Sobre Trigger
> On Wed, Jun 08, 2005 at 06:17:36PM -0300, Ariel Tavella wrote:
>> Hola Lista
>>
>> Tengo un trigger definido para una tabla el cual debe actualizar
>> (UPDATE) dos campos de otra tabla. El problema es que me tira el
>> siguiente error "UPDATE IS NOT ALLOWED IN A NON-VOLATILE FUNCTION",
>> alguien me podria decir de que se trata y como resolverlo.
>
> Facil, declara la funcion como volatil.
>
>> create or replace function minmax() returns trigger as $$
>> declare
>> reg record;
>> begin
>> select into reg min(campo) as minimo, max(campo) as maximo from prueba
>> where id = new.id;
>> update tabla2 set campo1 = reg.minimo, campo2 = reg.maximo where ide =
>> new.id;
>> return null;
>> end;
>> $$ .........
> ^^^^^^^^^
>
> Justo omitiste la parte importante.
>
> Ahora, la verdad es que parece que tu funcion estuviera trabajando de
> mas. Probablemente no necesitas hacer el select para hacer el siguiente
> update. El rendimiento de eso sera muy malo.
>
> --
> Alvaro Herrera (<alvherre[a]surnet.cl>)
> Y dijo Dios: "Que sea Satanás, para que la gente no me culpe de todo a
> mí."
> "Y que hayan abogados, para que la gente no culpe de todo a Satanás"
>
> ---------------------------(fin del mensaje)---------------------------
> TIP 8: explain analyze es tu amigo
>
From | Date | Subject | |
---|---|---|---|
Next Message | Alvaro Herrera | 2005-06-08 23:18:03 | Re: Ayuda Sobre Trigger |
Previous Message | Alvaro Herrera | 2005-06-08 22:39:49 | Re: [OT] ¿Cuáles deberían ser las funciones de un DBA? |