Re: Pregunta sobre error en disparador

From: "Jaime Casanova" <jcasanov(at)systemguards(dot)com(dot)ec>
To: miguel <mvillagomez(at)sayab(dot)com(dot)mx>
Cc: "Lista Postgres" <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Pregunta sobre error en disparador
Date: 2008-11-16 01:10:46
Message-ID: 3073cc9b0811151710h39173f95k63438c7a181007ff@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

On Sat, Nov 15, 2008 at 5:44 AM, miguel <mvillagomez(at)sayab(dot)com(dot)mx> wrote:
> Tengo el siguiente disparador
>
> CREATE OR REPLACE FUNCTION movement_trg() RETURNS "trigger" AS $$
> DECLARE
> v_DateNull TIMESTAMP := TO_DATE('01-01-1900', 'DD-MM-YYYY');
> BEGIN
> IF
> (
> OLD.PROCESSED = 'Y' AND
> (/*Inicio Condicion 2*/
> (COALESCE(OLD.MOVEMENTDATE, v_DateNull) <>
> COALESCE(NEW.MOVEMENTDATE, v_DateNull))

no puedes usar NEW en un DELETE

> OR
> (COALESCE(OLD.AD_ORGTRX_ID, 0) <>
> COALESCE(NEW.AD_ORGTRX_ID, 0))

ni aqui

> OR
> (COALESCE(OLD.DOCUMENTNO, '.') <>
> COALESCE(NEW.DOCUMENTNO, '.'))

ni aqui

> OR
> (COALESCE(OLD.AD_ORG_ID, 0) <> COALESCE(NEW.AD_ORG_ID,
> 0))

ni aqui

> OR
> (COALESCE(OLD.AD_CLIENT_ID, 0) <>
> COALESCE(NEW.AD_CLIENT_ID, 0))

ni aqui

--
Atentamente,
Jaime Casanova
Soporte y capacitación de PostgreSQL
Asesoría y desarrollo de sistemas
Guayaquil - Ecuador
Cel. +59387171157

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alvaro Herrera 2008-11-16 01:16:37 Re: integridad ante fallo
Previous Message Jaime Casanova 2008-11-16 01:07:11 Re: integridad ante fallo