From: | Jaime Casanova <systemguards(at)yahoo(dot)com> |
---|---|
To: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: Triggers con argumentos |
Date: | 2004-11-05 23:07:53 |
Message-ID: | 20041105230753.7635.qmail@web50004.mail.yahoo.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
--- "Mario A. Soto Cordones"
<mario_soto(at)venezolanadeavaluos(dot)com> escribió:
> Hola Alvaro, lo que quiero hacer es lo siguiente:
>
> Actualizar 1 tabla a partir de otra tabla, pero
> estas no tienen relacion
> entre si, por lo que no puedo utilizar referencia de
> integridad, sino
> fuera sencillo porque le creo una FK y gatillo en
> evento ON UPDATE. Pero
> este no es mi caso:
>
> Inicialmente la función gatillada por el trigger es
> esta.
>
> CREATE OR REPLACE FUNCTION funcion_act_tabla2" ()
> RETURNS trigger AS'
> declare
> QRY varchar := '''';
> begin
> QRY := ''update tabla2 set tabla2.nombre = '''' ||
> quote_literal(NEW.nb_nombre) || ''''
> where tabla2.empresa= tabla1.co_empresa and
> tabla2.filial =
> tabla1.co_filial and tabla2.codigo =
> tabla1.nu_activo_fijo'';
>
> execute QRY;
> return NEW;
> end;
> 'LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT
> SECURITY INVOKER;
>
>
Hasta aqui no veo para que necesitas los parametros en
el trigger.
>
> En sintesis lo que quiero hacer es que cuando
> actualice la tabla1, se
> actualicen algunos campos
> de la tabla 2.
>
Esa es la idea de crear un trigger.
>
> CREATE TRIGGER trigger_fk_pns_ug
> AFTER INSERT OR UPDATE ON t_pns
> FOR EACH ROW
> EXECUTE PROCEDURE func_fk_temporal_trigger
> ('t_pns', 'ug', 't_ug', 'id');
>
>
> CREATE TRIGGER trigger_fk_ug_pns
> AFTER DELETE OR UPDATE ON t_ug
> FOR EACH ROW
> EXECUTE PROCEDURE func_fk_temporal_trigger
> ('t_pns', 'ug', 't_ug', 'id');
>
>
> CREATE TRIGGER trigger_fk_pnspar_pns
> AFTER INSERT OR UPDATE ON t_pnspar
> FOR EACH ROW
> EXECUTE PROCEDURE func_fk_temporal_trigger
> ('t_pnspar', 'pns',
> 't_pns', 'id');
>
>
> CREATE TRIGGER trigger_fk_pnspar_par
> AFTER DELETE OR UPDATE ON t_pnspar
> FOR EACH ROW
> EXECUTE PROCEDURE func_fk_temporal_trigger
> ('t_pnspar', 'par',
> 't_par', 'id');
>
Fijate que en todos los casos los paramtros son una
cadena de caracteres constante, no son valores que van
a variar dinamicamente.
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 | Carlos Chavez Herrera | 2004-11-06 01:04:14 | Re: conexiones |
Previous Message | Mario A. Soto Cordones | 2004-11-05 20:16:24 | Consulta |