problema con funcion y trigger

From: Brigitte Pedraza <brigittep_co(at)yahoo(dot)com(dot)ar>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: problema con funcion y trigger
Date: 2005-10-18 20:37:30
Message-ID: 20051018203730.97422.qmail@web32009.mail.mud.yahoo.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Hola lista, tengo un pequeño problema resulta que
tengo una tabla temporal "area_temporal" a la cual le
inserto un conjunto de registros que tienen en común
un cod_area.

La idea es por ejemplo que cuando inserte en esa tabla
("area_temporal") un conjunto de registros con
cod_area=3, inmediatamente vaya a la tabla de
"empleados" (donde están todos los empleados de todas
las áreas) y me borre todos los del área 3 y me
inserte los nuevos como quien dice algo así como
sobreescribir todo lo de esa área y posteriormente
cuando hayan pasado todos los datos la tabla
"area_temporal" quede vacía.

La llave en ambas tablas es un campo id de tipo
autonumerico.

Lo he intentado de varias formas pero solo me ingresa
uno o maximo dos datos, no entiendo por que?

En esta ultima forma me inserta todos los registros
pero no me borra de la tabla empleados solo adiciona y
adiciona.

Es algo como :

CREATE OR REPLACE FUNCTION ins_temp()
RETURNS "trigger" AS
$BODY$
DECLARE
var record;
BEGIN
SELECT * INTO var FROM empleados where
empleados.cod_area=NEW.cod_area;
--IF NOT FOUND THEN
IF var IS NOT NULL THEN
insert into empleados (id,cedula, nombre, cod_area)
values (id.new, new.cedula, new.nombre, new.cod_area);

--delete from empleados where
empleados.cod_area=NEW.cod_area;
ELSE
delete from empleados where
empleados.cod_area=NEW.cod_area;
--insert into empleados (id,cedula, nombre, cod_area)
values (id.new, new.cedula, new.nombre, new.cod_area);

END IF;
DELETE FROM area_temporal;
RETURN NEW;
--delete from empleados where
empleados.cod_area=NEW.cod_area;
END;

CREATE TRIGGER tg_ins_temp AFTER INSERT ON
area_temporal FOR EACH ROW EXECUTE PROCEDURE
ins_temp();

Muchas Gracias por la colaboración que me puedan
Brindar.

Brigitte



___________________________________________________________
1GB gratis, Antivirus y Antispam
Correo Yahoo!, el mejor correo web del mundo
http://correo.yahoo.com.ar

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Mario Gonzalez 2005-10-18 21:22:04 Re: Traducción
Previous Message orlando alarcon 2005-10-18 19:50:48 obtener modelo desde las tablas