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

comportamiento diferente trigger pgsql 7.3 y 8.1.5

From: Felipe de Jesús Molina Bravo <fjmolinabravo(at)gmail(dot)com>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: comportamiento diferente trigger pgsql 7.3 y 8.1.5
Date: 2007-01-26 17:37:09
Message-ID: c31298e50701260937i3ac731f2qf3e94b9db31cba8b@mail.gmail.com (view raw or flat)
Thread:
Lists: pgsql-es-ayuda
Que tal lista:

Tengo las siguientes tablas y triggers (postgres 8.1.5):

Producto(
   idproducto serial primary key,
   .....
   usuario  char(1),
   total_lugares integer
);
create trigger tu_productos BEFORE UPDATE ON producto FOR EACH ROW
EXECUTE PROCEDURE fu_productos()

lugar(
   idlugar serial primary key,
   idproducto integer not null,
   .....
   FOREIGN KEY (idproducto) REFERENCES producto(idproducto) ON DELETE
   CASCADE
)
create trigger tib_lugares AFTER INSERT OR DELETE ON lugar FOR EACH ROW
EXECUTE PROCEDURE fib_lugares()

La funcion fu_productos tiene lo siguiente:

create or replace function fu_productos() returns trigger as '
begin
   if old.usuarios = 1 and new.usuarios = 2 then
      delete from lugar where idproducto = old.idproducto;
   end if;
   return new;
end;
' language 'plpgsql';


create or replace function fib_lugares() returns trigger as '
begin
   if TG_OP = ''INSERT'' THEN
          update producto set total_lugares = total_lugares + 1  where
          idproducto = new.idproducto;
        return new;
   ELSIF TG_OP = ''DELETE'' THEN
          update producto set total_lugares = total_lugares - 1  where
          idproducto = old.idproducto;
        return old;
   end if;
   return null;
end;
' language 'plpgsql';


Me di cuenta de que al momento de cambiar el atributo producto.usuario
de '1' a '2' no hace el cambio en producto, pero si borrar en la tabla
lugar; este compartamiento no lo tenía con postgres 7.4

A que se debe este cambio en postgres?  era incorrecto su funcionamiento
anteriormente?

Si cambio el trigger de producto a AFTER UPDATE ya no hay problema.

Saludos y gracias de antemano

pgsql-es-ayuda by date

Next:From: Norman Mauricio GarciaDate: 2007-01-26 18:12:24
Subject: Respaldo de esquema con campos blob
Previous:From: Felipe de Jesús Molina BravoDate: 2007-01-26 17:26:41
Subject: OFF-TOPIC No leer

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