Ver Mensaje Individual
  #1 (permalink)  
Antiguo 22/06/2008, 14:25
lmescaille
 
Fecha de Ingreso: junio-2008
Mensajes: 1
Antigüedad: 15 años, 10 meses
Puntos: 0
problema con trigger

He hecho un trigger que realiza varias tareas, pero que necesito no se porque no hace lo que pense haria, he leido de pl/pgsql y de triggers pero no encuentro solucion. Esta es la funcion, el trigger se dispara despues de insert or delete en la tabla contenedor:
CREATE OR REPLACE FUNCTION "public"."para_el_trigger" () RETURNS trigger AS
$body$
/* este script asigna alcen y y area a un contenedor despues de ser insertado*/
DECLARE
conalmacen numeric;
id_pq integer:=1;
id_med integer:=1;
id_gr integer:=1;
idc numeric;
tam varchar;
begin
select contenedor.id_contenedor, contenedor.tamano, contenedor.id_almacen
into idc, tam, conalmacen
from contenedor
order by contenedor.id_contenedor desc limit 1;

/*Esta parte es para asignar almacen*/
if("almacenlleno"(conalmacen) = TRUE) THEN
conalmacen := conalmacen + 1;
END if;
UPDATE "contenedor" SET id_almacen = conalmacen
WHERE contenedor.id_contenedor = idc;

/*Y esta para llenar las areas segun se inserta un contedor*/

if(tam = 'pequenno')THEN
INSERT INTO area_pequenna(id_apequenna, cont_id, id_almacen)
VALUES(id_pq, idc, conalmacen);
id_pq = id_pq+1;
if(tam = 'mediano')THEN
INSERT INTO area_mediana(id_amediana, conten_id, id_almacen)
VALUES(id_med, idc, conalmacen);
id_med = id_med+1;
else if(tam = 'grande')THEN
INSERT INTO area_grande(id_agrande, id_cont, id_almacen)
VALUES(id_gr, idc, conalmacen);
id_gr = id_gr+1;
end if;
end if;
end if;

RETURN NULL;
END;
si alguien puede ayudarme, por favor
Saludos