OLD: existe en UPDATE y DELETE
NEW: existe en INSERT y UPDATE
Sin importar si es BEFORE o AFTER, pero si es en after y regresas algo,
simplemente se ignora. (1)

Tu quieres quƩ marque error antes de que borre o actualize? entonces es
before.



Gracias por la respuesta pero aun cambiando la declaración me sigue
> marcando el error:
>
> ERROR:  record "new" is not assigned yet
> DETAIL:  The tuple structure of a not-yet-assigned record is
> indeterminate.
> CONTEXT:  PL/pgSQL function "movement_trg" line 20 at if
> STATEMENT:  DELETE FROM M_Movement
>        WHERE M_Movement_ID
>        IN ('1000000') AND AD_Client_ID IN (1000000) AND AD_Org_ID IN
> (1000000);
>
>
>
Aqui se ve que quieres borrar un regristo y en la funcion tienes
COALESCE(OLD.MOVEMENTDATE, v_DateNull) <> COALESCE(NEW.MOVEMENTDATE,
v_DateNull)
pero como lo estas llamando desde un delete no existe NEW, a menos que con
el primer IF sea un valor que pones cuando actualizas, entonces estaria en
NEW

(1) http://www.postgresql.org/docs/8.3/static/plpgsql-trigger.html
-- 
________________________________________
Lo bueno de vivir un dia mas
es saber que nos queda un dia menos de vida

Responder a