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

Error en disparador

From: miguel <mvillagomez(at)sayab(dot)com(dot)mx>
To: Lista Postgres <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Error en disparador
Date: 2008-08-21 12:52:57
Message-ID: 1219323177.11652.2.camel@localhost (view raw or flat)
Thread:
Lists: pgsql-es-ayuda
Qué tal tengo varias tablas y en ellas trato de hacer funcionar una
vista.
La vista actua de diferente manera cuando es inserción o actualización.
Con la inserción no hay problema alguno pero con la actualización no la
realiza de ninguna manera, no comprendo bien si el error es lógico o no
pero pido su consejo para que puedan apoyarme.
Aquí el disparador:

 CREATE OR REPLACE FUNCTION trigger_departamento() RETURNS TRIGGER AS $$
 BEGIN
   IF (TG_OP = 'INSERT') THEN
     IF (New.id_departamento IN(SELECT id_departamento FROM
departamento_error)) THEN
       DELETE FROM departamento_error WHERE
id_departamento=New.id_departamento;
     END IF;  

     IF (
         (New.id_departamento IN(SELECT id_departamento FROM
departamento_excepciones))
           OR
         (New.id_departamento IN(SELECT id_departamento FROM
departamento))
           OR
         (New.id_departamento IN(SELECT id_departamento FROM
departamento_agregados))
        )
     THEN
       RETURN NULL;
     END IF;
   ELSIF (TG_OP = 'UPDATE') THEN
     IF (New.id_departamento IN(SELECT id_departamento FROM
departamento_agregados)) THEN
       UPDATE departamentos_agregados SET
nombre_departamento=New.nombre_departamento WHERE
id_departamento=New.nombre_departamento;
       RETURN NULL;
     END IF;
   END IF;
   RETURN NEW;
 END;
 $$ LANGUAGE PLPGSQL;
 CREATE TRIGGER trigger_departamento BEFORE INSERT OR UPDATE ON
departamento FOR EACH ROW EXECUTE PROCEDURE trigger_departamento();


Gracias de antemano por la ayuda.

-- 
Miguel Ángel Villagómez Díaz
Sayab Technologies S.C.
Tel. 3616-9100


Responses

pgsql-es-ayuda by date

Next:From: Sebastián VillalbaDate: 2008-08-21 13:04:10
Subject: RE: Select en una BD e insert en otra BD
Previous:From: Laura reivaDate: 2008-08-21 12:11:06
Subject: RE: Select en una BD e insert en otra BD

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