Skip site navigation (1) Skip section navigation (2)

Raise Exception

From: "Mauricio E(dot) Pastorini Torres" <m_pastorini(at)elgolfo(dot)cl>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Raise Exception
Date: 2004-04-28 20:24:56
Message-ID: 25224.200.50.110.187.1083183896.squirrel@www.elgolfo.cl (view raw or flat)
Thread:
Lists: pgsql-es-ayuda
Estimados amigos... he construido una funcion que necesita actualizar
varias tablas tal como lo muestro en el siguiente ejemplo...

CREATE FUNCTION actualiza() RETURNS trigger AS '
    BEGIN

       update cargas set codtitular = new.codpaciente where codtitular =
old.codpaciente;

       if (variable_de_error) then
           raise exception 'error al actualizar cargas';
       end if

       update paciente_historia_clinica set codpaciente = new.codpaciente
where codpaciente = old.codpaciente;

       if (variable_de_error) then
           raise exception 'error al actualizar historia clinica';
       end if

       update pac_emp set codpaciente = new.codpaciente where codpaciente
= old.codpaciente;

       if (variable_de_error) then
           raise exception 'error al actualizar pac_emp';
       end if

        RETURN NEW;
    END;
' LANGUAGE plpgsql;

mi pregunta es... ¿cuál es la variable que verifica si existió o no un
error en la última instrucción sql?

y la segunda pregunta.... el mismo ejemplo:

CREATE FUNCTION actualiza() RETURNS trigger AS '
    BEGIN
       if old.codpaciente != new.copaciente then
          update cargas set codtitular = new.codpaciente where codtitular
= old.codpaciente;

          if (variable_de_error) then
              raise exception 'error al actualizar cargas';
          end if;

          update paciente_historia_clinica set codpaciente =
new.codpaciente where codpaciente = old.codpaciente;

          if (variable_de_error) then
              raise exception 'error al actualizar historia clinica';
          end if;

          update pac_emp set codpaciente = new.codpaciente where
codpaciente = old.codpaciente;

          if (variable_de_error) then
              raise exception 'error al actualizar pac_emp';
          end if;
       end if;

       RETURN NEW;
    END;
' LANGUAGE plpgsql;

esta bien construido esto? lo pregunto por que al momento de compilarlo me
marco un error...

obs.: el procedimiento del ejemplo es activado por un trigger.

bueno espero haber sido claro en mi pregunta...

gracias

Mauricio Pastorini T.


In response to

Responses

pgsql-es-ayuda by date

Next:From: Alvaro HerreraDate: 2004-04-28 22:00:05
Subject: Re: El postmaster esta levantado y no puedo entrar
Previous:From: Martin MarquesDate: 2004-04-28 20:17:55
Subject: Re: Actualizar a 7.4.2

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group