Saturday, June 21, 2008

Re: [pgsql-es-ayuda] AYUDA CON TRIGER - URGENTE

Se que esto no ayuda, pero por que es URGENTE?

gb.-

2008/6/20 fulanito detal <fulanito000@hotmail.com>:
>
> HOLA, les pido ayuda con un triger que no me sale..
> Estoy intentando hacer un triger que cuando inserto registros a una tabla,
> que si hay un registro con ciertos campos iguales no inserta el nuevo
> registro, pero modifica un campo del viejo llamado orige , concatenandole el
> origen del nuevo campo...
> el triger compilo pero a la hora de hacer un copy , me sale el siguiente
> error:
>
> ERROR: UPDATE no está permitido en una función no-«volatile»
> CONTEXTO: sentencia SQL: «update imagenfisica set imgfis_origen = $1
> where id = $2 »
> PL/pgSQL function "eliminarepetidos" line 14 at SQL statement
> COPY imagenfisica, línea 1:
> «2450048|N|1738|1933|N19331738000115.TIF|14/05/2008
> 10:15:20|120432|SERVIDOR_4»
>
> alguien tiene idea que quiere decir, y como lo puedo arregla??
>
> aca abajo les dejo el trigger
>
> muchas gracias
>
> jorge
>
> declare
> im imagenfisica%ROWTYPE;
> begin
> SELECT INTO im * FROM imagenfisica i
> WHERE i.imgfis_nomarch = new.imgfis_nomarch
> and i.imgfis_nrolibro = new.imgfis_nrolibro
> and i.imgfis_tpolibro = new.imgfis_tpolibro
> and i.imgfis_anio = new.imgfis_anio;
> IF NOT FOUND THEN
> --RAISE EXCEPTION ''''View '''' || key || '''' not found'''';
> -- RETURN null;
> END IF;
> IF im.imgfis_nomarch is not null THEN
> update imagenfisica
> set imgfis_origen = imgfis_origen || '-'|| new.imgfis_origen
> where id = im.id;
>
> RETURN NULL;
> END IF;
>
> RETURN NEW;
> end;
>
>
> ________________________________
> Tecnología, moda, motor, viajes,.suscríbete a nuestros boletines para estar
> siempre a la última MSN Newsletters

--
Guido Barosio
-----------------------
http://www.globant.com
guido.barosio@globant.com
--
TIP 10: no uses HTML en tu pregunta, seguro que quien responda no podrá leerlo

No comments: