From: | "P(at)blo Villad(at)" <andresv50(at)hotmail(dot)com> |
---|---|
To: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | DUDA GRANDISIMA TRIGGER AYUDA GRACIAS |
Date: | 2005-08-18 23:09:46 |
Message-ID: | BAY23-F23A4460A4F5359ABC1B3B3B3B20@phx.gbl |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Hola A Todos
ayuda ayuda ayuDA ayUDA aYUDA AYUDA AYUDA
Gracia por la ayuda prestada, ahora tengo un problema con un trigger.
Resulta q tengo dos tablas una llamada CONTRATO y otra ASCENSO_CATEGORIA
ahora necesito q cuando se inserte un nuevo registro en la tabla
ascenso_categoria, de igual manera en la tabla contrato se genere un nuevo
registro con los datos anteriores al contrato y con la categoria nueva Y
tambien q el contrato anterior del cual tome los dato para el nuevo quede en
estado inactivo..
Ejemplo.
Tengo un Contrato Datos
cedula Nombre Dedicacion Categoria estado
Contrato
10 | Andres | Dedicacion 1 | Categoria 1 | t
ahora inserto un ascenso por categoria a este empleado
cedula nombre Categoria Actual Categoria Pasa
10 | Andres | Categoria 1 | Categoria 2
ahora necesito que la tabla contrato se refleje de esta manera
cedula Nombre Dedicacion Categoria estado
Contrato
10 | Andres | Dedicacion 1 | Categoria 1 | f
10 | Andres | Dedicacion 1 | Categoria 2 | t
por ahora lo hago trato de hacerlo con un trigger de esta manera...
CREATE OR REPLACE FUNCTION ascenso_contrato_categoria() RETURNS TRIGGER AS
$act_con_ascenso_categoria$
BEGIN
IF (TG_OP = 'INSERT') THEN
INSERT INTO contrato SELECT OLD.con_emp_nidntfccion,
OLD.con_tcon_cdigo, OLD.con_nmero, OLD.con_dd_cdigo, OLD.con_car_cdigo,
OLD.con_pro_cdigo, OLD.con_fincio, OLD.con_fvncmnto, OLD.con_frtiro,
OLD.con_ded_cdigo, NEW.con_cat_cdigo, OLD.con_sbsico, OLD.con_fpago,
OLD.con_ppago, OLD.con_ppreba, OLD.con_mtivo, OLD.con_estado;
RETURN NEW;
END IF;
RETURN NULL;
END;
$act_con_ascenso_categoria$ LANGUAGE plpgsql;
CREATE TRIGGER contrato_categoria
AFTER INSERT ON ascenso_categoria
FOR EACH ROW EXECUTE PROCEDURE ascenso_contrato_categoria();
SACA ESTE ERROR
ERROR: record "old" is not assigned yet
DETAIL: The tuple structure of a not-yet-assigned record is indeterminate.
CONTEXT: PL/pgSQL function "ascenso_contrato_categoria" line 5 at SQL
statement
QUE PUEDO HACER .
TENGO Q HACER VARIOS DE ESTOS MISMOS.
MUCHAS GRACIAS
From | Date | Subject | |
---|---|---|---|
Next Message | Carlos | 2005-08-19 00:10:39 | Re: DUDA GRANDISIMA TRIGGER AYUDA GRACIAS |
Previous Message | Martin Marques | 2005-08-18 21:13:15 | Re: SuSe o Mandrake? para postgres |