te conviene utilizar valores por default y restricciones check en el
ddl del campo de la tabla.
En el caso de querer convertir los NULL a   ' ', te conviene en vez de
utilizar un trigger, utilizar un RULE.

CREATE RULExxxxx AS
ON INSERT TO tabla WHERE
    ( fulano is NULL )
DO INSTEAD
    INSERT INTO tabla VALUES (' ');

no probe la funcionalidad del ejemplo, pero va por ese lado si no me equivoco.


2008/11/3 marcelo Cortez <[EMAIL PROTECTED]>:
> Gente
>
> tengo un trigger  para corregir un campo de tabla , el tema es que no me 
> grabe nulls en un campo.
> aca el codigo del trigger.
>
> CREATE OR REPLACE FUNCTION tr_status()
>  RETURNS trigger AS
> $BODY$
>    BEGIN
>        -- Check that empname and salary are given
>        IF NEW.status_f IS NULL THEN
> NEW.status_f := ' ';
>        END IF;
>
>        RETURN NEW;
>    END;
> $BODY$
>  LANGUAGE 'plpgsql' VOLATILE
>  ;
>
> asi lo instale.
>
>  CREATE TRIGGER tr_status
>  AFTER INSERT OR UPDATE
>  ON marca
>  FOR EACH ROW
>  EXECUTE PROCEDURE tr_status();
>
> pero el siguiente query me encuentra registros con null.
>
>  select * from marca where status_f  is null ;
> Como es posible si despues de insert o update el trigger corrige este campo??
>
> cualquuier ayuda sera apreciada
> saludos
>
> mdc
>
>
>      
> ____________________________________________________________________________________
> ¡Buscá desde tu celular!
>
> Yahoo! oneSEARCH ahora está en Claro
>
> http://ar.mobile.yahoo.com/onesearch
> --
> TIP 7: no olvides aumentar la configuración del "free space map"
>



-- 
    Emanuel Calvo Franco
   Syscope Postgresql DBA
     BaPUG / AOSUG Member
--
TIP 6: ¿Has buscado en los archivos de nuestra lista de correo?
               http://archives.postgresql.org/pgsql-es-ayuda

Responder a