From: | Jaime Casanova <systemguards(at)yahoo(dot)com> |
---|---|
To: | "Mario A(dot) Soto Cordones" <mario_soto(at)venezolanadeavaluos(dot)com> |
Cc: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: Triggers con argumentos |
Date: | 2004-11-06 19:16:24 |
Message-ID: | 20041106191624.36115.qmail@web50010.mail.yahoo.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Hola Mario,
Lo primero que te voy a recomendar antes que te metas
con el sistema de reglas es usar una funcion en vez de
un trigger.
CREATE OR REPLACE FUNCTION funcion_act_tabla2(..todos
los parametros que quieras..) RETURNS VOID AS '
declare
begin
insert into tabla1 values($1, $2, ....);
update tabla2 set nombre = "el parametro que pasastes"
where .. tus condiciones ..;
end;
'LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT
SECURITY INVOKER;
Piensa en esta opcion primero.
La opcion con el sistema de reglas implica crear una
tabla con los campos del insert y los campos
adicionales que necesites.
y luego crear una regla de este tipo:
create rule regla_para_el_insert AS
ON INSERT TO tabla_nueva [WHERE ...]
DO INSTEAD (
INSERT into tabla1 VALUES (new.campo1, new.campo2
...);
UPDATE tabla2 SET nombre = new.campo_para_update
WHERE ....;
)
Si te fijas es lo mismo que usar una funcion pero tu
solo te preocupas de hacer un insert con la funcion
debes ejecutarla haciendo "select
funcion(parametros);"
Yo tuve un problema similar y sinceramente pienso que
usar la funcion es mas facil, mas practico, etc., etc,
etc.
Atentamente,
Jaime Casanova
_________________________________________________________
Do You Yahoo!?
Información de Estados Unidos y América Latina, en Yahoo! Noticias.
Visítanos en http://noticias.espanol.yahoo.com
From | Date | Subject | |
---|---|---|---|
Next Message | Mario A. Soto Cordones | 2004-11-06 19:18:45 | Re: Triggers con argumentos |
Previous Message | Alvaro Herrera | 2004-11-06 16:24:17 | Re: ayuda con pg_connect |