El 25 de junio de 2009 19:58, Miguel Beltran R.<[email protected]> 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
--
TIP 6: �Has buscado en los archivos de nuestra lista de correo?
               http://archives.postgresql.org/pgsql-es-ayuda

Responder a