Re: Ayuda Sobre Trigger

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
>

In response to

Responses

Browse pgsql-es-ayuda by date

  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?