Re: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] no hacer un insert pero siga la transacción

From: Emanuel Calvo Franco <postgres(dot)arg(at)gmail(dot)com>
To: "Miguel Beltran R(dot)" <yourpadre(at)gmail(dot)com>
Cc: Ayuda <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] no hacer un insert pero siga la transacción
Date: 2009-07-01 15:47:43
Message-ID: f205bb120907010847l485e9764yb944af496d36cfce@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

El 25 de junio de 2009 19:58, Miguel Beltran R.<yourpadre(at)gmail(dot)com> escribió:
>>
>>
>> Usa un trigger BEFORE INSERT que verifique si el valor es 0, y de serlo,
>> returna NULL, con lo cual ese insert no se efectua.  En caso de no ser
>> 0, returna NEW, con lo cual el insert se hace normalmente.
>>
>
> Gracias Alvaro, quedo así
>
> REATE OR REPLACE FUNCTION func_quincena_material_00_monto()
>   RETURNS trigger AS
> $BODY$
>     BEGIN
>
>         -- Work out the increment/decrement amount(s).
>
>         IF (TG_OP = 'INSERT') THEN --se lo pongo para saber para que casos
> es la funcion
>
>             IF NEW.monto = 0 THEN
>                RETURN NULL;
>             END IF;
>         END IF;
>
>         RETURN NEW;
>
>     END;
>
> $BODY$
>   LANGUAGE 'plpgsql' VOLATILE
>   COST 100;
> ALTER FUNCTION func_quincena_material_00_monto() OWNER TO admin_ceed;
>

Podrías sacar el if del TG_OP si creas el trigger ON INSERT únicamente
y llamás a
esta función :)

Solo es una sugerencia.

Quedaría ~ así :

IF NEW.monto = 0 THEN
RETURN NULL;
END IF;

RETURN NEW;

--
Emanuel Calvo Franco
ArPUG [www.arpug.com.ar] / AOSUG Member
www.emanuelcalvofranco.com.ar

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message magonzalez 2009-07-01 16:05:12 Tipos de relaciones
Previous Message Edwin Quijada 2009-07-01 15:31:11 RE: pgbouncer y conexiones rotas