| 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: | Whole Thread | Raw Message | 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
| 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 |