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