DUDA GRANDISIMA TRIGGER AYUDA GRACIAS

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

Responses

Browse pgsql-es-ayuda by date

  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