22/06/2008, 14:25
|
| | Fecha de Ingreso: junio-2008
Mensajes: 1
Antigüedad: 16 años, 5 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 |