<html><div style='background-color:'><DIV class=RTE>Hola de nuevo... Llegue a algo tosco pero que funciona... Queria saber si alguno tiene idea de como optimizar este trigger.... Tengo una duda con el Update (Cambiara la fila que debe cambiar o existe la posibilidad de que guarden un registro antes de que el trigger corra?). Les anexo el codigo:</DIV>
<DIV class=RTE> </DIV>
<DIV class=RTE>CREATE OR REPLACE FUNCTION correlativos() RETURNS TRIGGER AS $correlativos$<BR> DECLARE<BR> correlativo integer;<BR> posicion integer;<BR> BEGIN</DIV>
<DIV class=RTE> -- Work out the increment/decrement amount(s).<BR> IF (TG_OP = 'INSERT') THEN<BR> IF (NEW.tipo='1') THEN <BR> correlativo=nextval('secuencia1'::text);<BR> ELSEIF (NEW.tipo='2') THEN <BR> correlativo=nextval('secuencia2'::text);<BR> ElSE<BR> correlativo=0;<BR> END IF;<BR> --posicion=NEW.idcodigo;<BR> END IF;<BR> <BR> UPDATE temp set codigo= correlativo WHERE idcodigo=(SELECT max(idcodigo) FROM temp);<BR> --NEW.codigo := correlativo;<BR> RETURN NULL;</DIV>
<DIV class=RTE> END;<BR>$correlativos$ LANGUAGE plpgsql;</DIV>
<DIV class=RTE>CREATE TRIGGER correlativos<BR>AFTER INSERT ON temp<BR> FOR EACH ROW EXECUTE PROCEDURE correlativos();</DIV></div></html>