From: | Felipe de Jesús Molina Bravo <felipe(dot)molina(at)inegi(dot)gob(dot)mx> |
---|---|
To: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | funcionamiento diferente en triggers |
Date: | 2007-01-29 16:15:41 |
Message-ID: | 1170087341.7795.30.camel@fjmb |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Espero que este correo si llegue. Si estoy subscrito a la lista. Mi
cliente de correo es Evolution con el exchange connector
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
From | Date | Subject | |
---|---|---|---|
Next Message | Alvaro Herrera | 2007-01-29 16:25:51 | Re: funcionamiento diferente en triggers |
Previous Message | Jenaro Centeno Gomez | 2007-01-29 15:42:21 | Re: Instalación en Opensuse 10.2 |