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
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 |