RE: Estancado con un trigger en PostgreSQL

From: "Fernando Hevia" <fhevia(at)ip-tel(dot)com(dot)ar>
To: "'hernan zapata'" <hazapata(at)gmail(dot)com>, <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: RE: Estancado con un trigger en PostgreSQL
Date: 2010-03-02 18:01:21
Message-ID: EC404E3E198A4C42AF1382A4850D4B11@iptel.com.ar
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

> -----Mensaje original-----
> De: hernan zapata

>
> CREATE FUNCTION actualizacion_estado_familiar_en_parentesco()
> RETURNS trigger AS $beneficiario$
>
> BEGIN
>
> IF (TG_OP = 'UPDATE')THEN
> IF((OLD.fk_codigo_familiar_que_puede_ser_beneficiario)<>
> (NEW.fk_codigo_familiar_que_puede_ser_beneficiario))THEN
>
> RAISE EXCEPTION 'Un Familiar puede pasar a ser un
> Beneficiario, pero un Beneficiario no puede pasar a ser un Familiar';
>
>
> RETURN NULL;
> END IF;
> RETURN NEW;
> ...

Este return está demás. Por eso no ejecuta el resto.

> ELSIF(TG_OP = 'INSERT') THEN
> UPDATE parentesco_familiar SET
> fk_codigo_beneficiario_relacion_lado1 =
> NEW.codigo_beneficiario
> WHERE
> fk_codigo_familiar_que_es_beneficiario_relacion_lado1 =
> NEW.fk_codigo_familiar_que_puede_ser_beneficiario;
>
> UPDATE parentesco_familiar SET
> fk_codigo_beneficiario_relacion_lado2 =
> NEW.codigo_beneficiario
> WHERE
> fk_codigo_familiar_que_es_beneficiario_relacion_lado2 =
> NEW.fk_codigo_familiar_que_puede_ser_beneficiario;
>
> END IF;
> RETURN NEW;
> END;
> $beneficiario$ LANGUAGE plpgsql;
>
> CREATE TRIGGER actualizacion_estado_familiar_en_parentesco
> AFTER INSERT OR UPDATE ON beneficiario
> FOR EACH ROW EXECUTE PROCEDURE
> actualizacion_estado_familiar_en_parentesco();

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Miguel Angel Hernandez Moreno 2010-03-02 19:49:49 comparacion de datos
Previous Message hernan zapata 2010-03-02 17:43:02 Estancado con un trigger en PostgreSQL