RE: Correlativos

From: "Miguel Ortega" <maob85(at)hotmail(dot)com>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: RE: Correlativos
Date: 2005-09-06 20:00:42
Message-ID: BAY23-F35157131715486A33541E9C3A70@phx.gbl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

<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>&nbsp;</DIV>
<DIV class=RTE>CREATE OR REPLACE FUNCTION correlativos() RETURNS TRIGGER AS $correlativos$<BR>&nbsp;&nbsp;&nbsp; DECLARE<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; correlativo&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; integer;<BR>&nbsp;posicion&nbsp;integer;<BR>&nbsp;&nbsp;&nbsp; BEGIN</DIV>
<DIV class=RTE>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -- Work out the increment/decrement amount(s).<BR>&nbsp;IF (TG_OP = 'INSERT') THEN<BR>&nbsp;&nbsp;IF (NEW.tipo='1') THEN&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;correlativo=nextval('secuencia1'::text);<BR>&nbsp;&nbsp;ELSEIF (NEW.tipo='2') THEN <BR>&nbsp;&nbsp;&nbsp;correlativo=nextval('secuencia2'::text);<BR>&nbsp;&nbsp;ElSE<BR>&nbsp;&nbsp;&nbsp;correlativo=0;<BR>&nbsp;&nbsp;END IF;<BR>&nbsp;&nbsp;--posicion=NEW.idcodigo;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; END IF;<BR>&nbsp;<BR>&nbsp;UPDATE temp set codigo= correlativo WHERE idcodigo=(SELECT max(idcodigo) FROM temp);<BR>&nbsp;--NEW.codigo := correlativo;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RETURN NULL;</DIV>
<DIV class=RTE>&nbsp;&nbsp;&nbsp; END;<BR>$correlativos$ LANGUAGE plpgsql;</DIV>
<DIV class=RTE>CREATE TRIGGER correlativos<BR>AFTER INSERT ON temp<BR>&nbsp;&nbsp;&nbsp; FOR EACH ROW EXECUTE PROCEDURE correlativos();</DIV></div></html>

Attachment Content-Type Size
unknown_filename text/html 1.7 KB

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Diego Gil 2005-09-06 20:33:58 RE: Correlativos
Previous Message Alvaro Herrera 2005-09-06 19:58:09 Re: Correlativos