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();
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 |