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

--
TIP 1: para suscribirte y desuscribirte, visita 
http://archives.postgresql.org/pgsql-es-ayuda

Responder a